HttpClient的简单使用--HttpGET和HttpPost
2016-04-14 19:47
471 查看
HttpClient简单使用:
首先:Apache官网下载 HttpClient,需要了解三个类HttpClient 代表Http客户端 里面定义了很多http 请求执行行为
HttpEntity 消息载体,发送或者接收消息的载体,可以通过客户端请求或者服务器响应获取实例
HttpConnection 代表http连接
直接上代码,备注中有解释,关键现在HttpClient谷歌官方已经不怎么推荐了(Android2.3之前有一个bug,不过还是封装的挺号用的。):
HttpGet:
public void httpGet() { try { /***要了解的三个类 * HttpClient 代表Http客户端 HttpEntity 消息载体,发送或者接收消息的载体,可以通过客户端请求或者服务器响应获取实例 HttpConnection 代表http连接 **/ // 创建默认的客户端实例 HttpClient httpClient = new DefaultHttpClient(); String url = "http://www.baidu.com"; //HttpGet也可以带参数的:url + "?bookname=" + etBookName.getText().toString(); // 创建get请求实例 HttpGet httpGet = new HttpGet(url); // 客户端执行get请求 返回响应实体 HttpResponse httpResponse = httpClient.execute(httpGet); //获得输入流,用BufferedReader包装 BufferedReader in = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); StringBuilder stringBuilder = new StringBuilder(); String lines = null; //将内容写入StringBuilder中 while ((lines = in.readLine()) != null) { lines = new String(lines.getBytes("UTF-8")); stringBuilder.append(lines); } in.close(); Log.e("StringBuidler的值", stringBuilder.toString()); showToast(stringBuilder.toString()); } catch (IOException e) { e.printStackTrace(); } }
HttpPost:
public void httpPost() { String url = "http://www.baidu.com"; HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); //创建请求的参数,这里与HttpGet不同 List<NameValuePair> list = new ArrayList<>(); list.add(new BasicNameValuePair("username", name.getText().toString())); list.add(new BasicNameValuePair("password", pass.getText().toString())); try { //url格式编码,解析成一个entity对象 UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(list, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } //设置请求内容 httpPost.setEntity(uefEntity); //执行请求 try { //使用客户端向服务器发送数据,获得返回值 HttpResponse httpResponse = httpClient.execute(httpPost); BufferedReader in = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); StringBuilder stringBuilder = new StringBuilder(); String lines = null; //将内容写入StringBuilder中 while ((lines = in .readLine()) != null) { lines = new String(lines.getBytes("UTF-8")); stringBuilder.append(lines); } in .close(); Log.e("StringBuidler的值", stringBuilder.toString()); showToast(stringBuilder.toString()); } catch (IOException e) { e.printStackTrace(); } }
相关文章推荐
- 几种经典的网络服务器架构模型的分析与比较
- 使用 libevent 和 libev 提高网络应用性能
- 《网络工程师》 Part4 局域网与城域网
- TCP/IP协议--TCP的交互数据流和成块数据流
- 【BZOJ3651】网络通信【Link-Cut Tree】
- VB.NET 如何进行调用HTTP外部接口
- TCP/IP具体解释--TCP/UDP优化设置总结& MTU的相关介绍
- Linux网络编程之聊天程序(TCP协议之select)
- debian使用apt安装时出现“更换介质,插入驱动器"/media/chrom/"再按回车键”的提示,无法从网络安装,解决?
- Java Web基础知识之Servlet(2):深入Servlet——HttpServlet
- 连“霍金”都想学习的“人工智能”---【自己动手写神经网络】小白入门连载開始了(1)
- 傅里叶分析之掐死教程(完整版)原文地址:http://zhuanlan.zhihu.com/p/19763358?columnSlug=wille
- http://www.cnitblog.com/seeyeah/archive/2009/03/15/55440.html
- Linux网络编程之聊天程序(TCP协议之fork进程)
- C#学习笔记-socket通信(同步,客户端+服务器,TCP)
- HttpClients
- Tcpcopy - 安装记录
- 在与 SQL Server 建立连接(或者远程连接)出现与网络相关的或特定于实例的错误。Microsoft SQL Server,错误: 10061
- HTTP Header
- httpclient 无信任证书使用https