HttpClient基本操作

原创 2013年12月03日 21:56:25

HttpClient请求

HttpClient支持HTTP/1.1这个版本定义的所有Http方法:GET,HEAD,POST,PUT,DELETE,TRACE和OPTIONS。对于每一种http方法,HttpClient都定义了一个相应的类:HttpGet,HttpHead,HttpPost,HttpPut,HttpDelete,HttpTrace和HttpOpquertions。

Httpclient还可以自定义uri,方法如下:

//http://www.baidu.com/ur/chengjiu?from=super

      URI uri = new URIBuilder()

      .setScheme("http")

      .setHost("www.baidu.com")

      .setPath("/ur/chengjiu")

      .setParameter("from", "super")

      .build();

       HttpGet httpget = new HttpGet(uri);

       System.out.println(httpget.getURI());

 

输出:http://www.baidu.com/ur/chengjiu?from=super

 

下面模仿一个简单的请求例子:

HttpClient httpclient =HttpClients.createDefault();

HttpResponse response = httpclient.execute(httpget);

 

消息回应

消息头

Response中包含了回应的消息,我们可以轻易的得到回应的消息,方法如下

//得到回应状态码

System.out.println(response.getProtocolVersion());

System.out.println(response.getStatusLine().getStatusCode());

System.out.println(response.getStatusLine().getReasonPhrase());

System.out.println(response.getStatusLine().toString());

     

//得到回应消息头,HeaderIterator是参数迭代器

HeaderIterator it =response.headerIterator();

while (it.hasNext()) {

   System.out.println(it.next());

}

消息实体

得到实体内容

HttpEntity entity =response.getEntity();

   if (entity != null) {            

   try {

   InputStream content=entity.getContent();

   String charset=EntityUtils.getContentCharSet(entity);

   BufferedReader reader=new BufferedReader(new InputStreamReader(content,charset));

   String line=null;

   while((line = reader.readLine()) != null){

       System.out.println(line);

   }

   reader.close();

   } catch (Exception e) {

   }

}

 

模拟表单登陆

很多应用程序需要模拟提交Html表单的过程,举个例子,登陆一个网站或者将输入内容提交给服务器。HttpClient提供了UrlEncodedFormEntity这个类来帮助实现这一过程。

List<NameValuePair>formparams = new ArrayList<NameValuePair>();

formparams.add(new BasicNameValuePair("email", "value1"));

formparams.add(new BasicNameValuePair("password", "value2"));

HttpPost httppost = new HttpPost("http://www.renren.com/PLogin.do");

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);

httppost.setEntity(entity);

httpclient.execute(httppost);

HttpClient 的基本操作

final HttpClient httpClient = new HttpClient();GetMethod getMethod = new GetMethod("http://www.baidu...
  • li10080115
  • li10080115
  • 2015年01月31日 10:13
  • 226

HttpClient的基本操作

public class HttpClientFetch extends TestCase { // 使用 GET 方式向后台递交请求 public void testFetch01() ...
  • zccbbg
  • zccbbg
  • 2013年04月14日 22:12
  • 770

HttpClient Get和post基本操作

public static String sendGet() { String URL = "http://218.192.12.92/user/userinfo.aspx"; HttpCli...
  • chen1678940
  • chen1678940
  • 2014年04月06日 02:31
  • 512

算法:基本/常用 概念

------------------时间复杂度------------------ 算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n));例...
  • houseq
  • houseq
  • 2014年07月30日 13:59
  • 868

SQL Server 2012基本操作

创建数据库 create database dbname 删除数据库 drop database dbname创建新表(主键id自增长,从1开始,每次加1) create table tablena...
  • weixin_39791302
  • weixin_39791302
  • 2017年11月26日 18:01
  • 38

R——R的基本常用操作

R;一个由统计学家发明的语言,多用于数据分析。 RStudio;R的IDE工具,对于R的编写有很大的帮助,接下来的所有都是建立在RStudio中进行的。 1.获取帮组 :help > help(plo...
  • lime_
  • lime_
  • 2017年04月24日 21:00
  • 232

centos 基本操作命令

1:如何进入优盘          (1):回到根目录    cd /         (2) :cd /media/disk/ 2:删除文件夹         (1):rmdir 目...
  • u010187139
  • u010187139
  • 2014年11月06日 12:54
  • 593

selenium基本操作

1、操作浏览器(以firefox为例) 打开浏览器:driver = webdriver.Firefox() 访问页面:driver.get(url) 后退:driver.back() 前进:driv...
  • huayuhuan
  • huayuhuan
  • 2017年08月01日 20:24
  • 262

【数据结构】 链表的19种基本操作(完整版)

基于这篇文章: http://www.cnblogs.com/lifuqing/archive/2011/08/20/List.html 作者最后只给出了前面12中操作的代码,这里我帮他补全 链表...
  • fanxingzju
  • fanxingzju
  • 2014年04月03日 17:11
  • 1491

c++学习笔记—二叉树基本操作的实现

用c++语言实现的二叉树基本操作,包括二叉树的创建、二叉树的遍历(包括前序、中序、后序递归和非递归算法)、求二叉树高度,计数叶子节点数、计数度为1的节点数等基本操作。 IDE:vs2013 具体实...
  • xujian_2014
  • xujian_2014
  • 2015年01月15日 17:05
  • 1444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HttpClient基本操作
举报原因:
原因补充:

(最多只允许输入30个字)