Android Studio的网络连接HttpURLConnection.
来源:互联网 发布:摄像机软件 编辑:程序博客网 时间:2024/06/08 08:18
上篇的博客里面我说了,现在Android6.0已经将Httpclient废弃不用了,在AndroidStudio上使用的话会出现报错的情况。虽然现在在SDK中还是能找到这个类,同时使用,但是总是不方便,我们总要更新网络请求的。下面是我写的简单的HttpURLConnection请求代码。
HttpRequestUtil代码:
package com.yami.baichi.net;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.ProtocolException;import java.net.URL;import java.net.URLEncoder;import java.util.Map;import java.util.Set;/** * Created by dell on 2015/11/4. */public class HttpRequestUtil { /** * POST * @param callback * @param url * @param params * @param headers */ public static void sendPostRequest(HttpResCallback callback,String url,Map<String,String> params,Map<String,String> headers){ StringBuilder buf = new StringBuilder(); Set<Map.Entry<String, String>> entrys = null; if (params != null && !params.isEmpty()) { entrys = params.entrySet(); for (Map.Entry<String, String> entry : entrys) { try { buf.append(entry.getKey()).append("=") .append(URLEncoder.encode(entry.getValue(), "UTF-8")) .append("&"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } buf.deleteCharAt(buf.length() - 1); } URL url1 = null; try { url1 = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } HttpURLConnection conn = null; try { conn = (HttpURLConnection) url1.openConnection(); } catch (IOException e) { e.printStackTrace(); } try { conn.setRequestMethod("POST"); } catch (ProtocolException e) { e.printStackTrace(); } conn.setDoOutput(true); OutputStream out = null; try { out = conn.getOutputStream(); } catch (IOException e) { e.printStackTrace(); } try { out.write(buf.toString().getBytes("UTF-8")); } catch (IOException e) { e.printStackTrace(); } if (headers != null && !headers.isEmpty()) { entrys = headers.entrySet(); for (Map.Entry<String, String> entry : entrys) { conn.setRequestProperty(entry.getKey(), entry.getValue()); } } try { conn.getResponseCode(); // 为了发送成功 } catch (IOException e) { e.printStackTrace(); } int code = 0 ; InputStream in = null; String response = ""; try { code= conn.getResponseCode(); } catch (IOException e) { e.printStackTrace(); } if (code == 200) { try { in = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-8")); String readLine = null; while ((readLine = br.readLine()) != null) { response = response + readLine; callback.onRespose(response); } } catch (IOException e) { e.printStackTrace(); } }else { response = errorJson(code,"系统错误") ; callback.onRespose(response) ; } } public static String errorJson(int code, String errmsg) { StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append("errno:").append(code).append(","); sb.append("\"errmsg\":").append("\"").append(errmsg).append("\""); sb.append("}"); return sb.toString(); }}HttpResCallback代码:
package com.yami.baichi.net;/** * Created by dell on 2015/11/4. */public interface HttpResCallback { public void onRespose(String response) }
0 0
- Android Studio的网络连接HttpURLConnection.
- Android的网络连接HttpUrlConnection
- android 网络连接1:HttpURLConnection
- Android网络连接之HttpURLConnection和HttpClient
- android-HttpClient和HttpURLConnection判断网络连接
- Android网络连接之HttpURLConnection和HttpClient
- android HttpURLConnection 连接网络 读取返回数据
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- Android网络连接之HttpURLConnection和HttpClient
- JNI学习积累之一 ---- 常用函数大全
- linux awk数组操作详细介绍
- Spring、使用注解方式装配对象(@Resource、@Autowired)
- 浅析如何衡量程序员的生产效率
- Kalman滤波学习资源
- Android Studio的网络连接HttpURLConnection.
- 黑马程序员——基础知识——Map
- zookeeper3.4.6安装后Error contacting service. It is probably not running问题解决
- matlab slider和edit控件
- JSON
- ubuntu14.04 搭建nexus 私服
- git reset hard/soft/mixed区别
- 【Cocos2dx】菜单
- Simplygon Why do we optimize?