android 基础 网络交互 HttpClient
来源:互联网 发布:cisco进入端口命令 编辑:程序博客网 时间:2024/05/07 12:37
GET 方式
//先将参数放入List,再对参数进行URL编码List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();params.add(new BasicNameValuePair("param1", "中国"));params.add(new BasicNameValuePair("param2", "value2"));//对参数编码String param = URLEncodedUtils.format(params, "UTF-8");//baseUrlString baseUrl = "http://ubs.free4lab.com/php/method.php";//将URL与参数拼接HttpGet getMethod = new HttpGet(baseUrl + "?" + param);HttpClient httpClient = new DefaultHttpClient();try { HttpResponse response = httpClient.execute(getMethod); //发起GET请求 Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码 Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容} catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();}
POST方式
//和GET方式一样,先将参数放入Listparams = new LinkedList<BasicNameValuePair>();params.add(new BasicNameValuePair("param1", "Post方法"));params.add(new BasicNameValuePair("param2", "第二个参数"));try { HttpPost postMethod = new HttpPost(baseUrl); postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中 HttpResponse response = httpClient.execute(postMethod); //执行POST方法 Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码 Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容} catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace();} catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();}
BasicNameValuePair
定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类型),这个代码多处用于Java像url发送Post请求。在发送post请求时用该list来存放参数。
发送请求的大致过程如下:
String url="http://www.baidu.com";
HttpPost httppost=new HttpPost(url); //建立HttpPost对象
List<NameValuePair> params=new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
params.add(new BasicNameValuePair("pwd","2544"));
//添加参数
httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//设置编码
HttpResponse response=new DefaultHttpClient().execute(httppost);
//发送Post,并返回一个HttpResponse对象
EntityUtils
HttpClient4.3开源包,发现了EntityUtils这个对象,EntityUtils对象是org.apache.http.util下的一个工具类,用官方的解释是为HttpEntity对象提供的静态帮助类,其常用的几个方法如下:
consume()方法;
consumeQuietly(HttpEntity)方法
toByteArray(final HttpEntity entity)方法
最主要的就是consume()这个方法,其功能就是关闭HttpEntity是的流,如果手动关闭了InputStream instream = entity.getContent();这个流,也可以不调用这个方法。
- android 基础 网络交互 HttpClient
- android 基础 网络交互 HttpClient HttpUrlConnection
- HttpClient网络接口交互
- android 基础 网络交互 HttpConnection交互
- android 基础 网络交互,思路
- Android网络基础之HttpClient与HttpURLConnection
- android 基础 网络交互 get/post
- android HttpClient与服务器交互
- Android基础笔记——HttpClient访问网络
- Android HttpClient网络通信
- Android HttpClient网络通信
- Android HttpClient网络通信
- Android HttpClient网络通信
- Android 网络编程 HttpClient
- android网络处理HttpClient
- android网络编程--HttpClient
- Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例
- Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例
- 汇编语言(二) 第一个asm 程序
- Jsp根目录的不同含义
- XML解析之sax解析案例(二)使用sax解析把 xml文档封装成对象
- Makefile
- Enum
- android 基础 网络交互 HttpClient
- Python操作Excel之xlwt
- PAT 1049. 数列的片段和(20)
- 循环日程表问题
- SQL中-1,1,2,3四个状态排序为 1,2,3,-1
- Java字符类型
- 两个成员的类模板1
- postgres服务并发测试
- 安装libxml2时libtoolT错误解决办法