`

Java处理http协议相关初步(一)——httpclient

 
阅读更多
老是看了就忘,实在是不行啊,还是都一点一点记下来,帮着自己也帮着初学者吧。白话的描述自己的过程。首先说明的是这个用来做什么:处理http(超文本传输协议)报文,就是可以作为客户端,从网上获取个天气,手机归属地查询等等信息,或是模拟个网页上自动登录之类;或者作为服务端,提供特定URI上的响应。理解的不太好请谅解,下面开始:
HTTP协议是一种请求-应答式的协议:客户端发送一个请求,服务器返回该请求的回答,请求与应答都是http包,当然,是基于可靠地TCP连接的,端口默认是80;根据http协议,作为客户端可以对连接进行管理,而且HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系,那么状态的维护就需要其它方式,比如cookies;同样,作为服务端对于客户端连接请求及相应的状态维护需要进行处理。因此,这里就介绍作为处理http报文的客户端httpclient和可以作为简单服务端的httpserver。需要进一步说明的是httpclient是apache下的基于HttpCore的客户端HTTP运输实现库,提供了比java.net所具有的通过http访问资源更全面和灵活的功能。而httpserver是jdk6下,开放的不是太多的类库。
这里写几篇,最后想实现PC上一个服务端,PC的客户端和Android手机通过Wi-Fi链接PC的客户端,访问服务端,而这里面的具体功能就看情况啦,传个文件?如果是视频就美啦,想想而已。先说httpclient。(专业的官方教程翻译文档可以去下面链接下载)
首先明确的是httpclient最重要的功能是执行HTTP方法,但它不是一个浏览器。它是一个客户端的 HTTP 通信实现库。HttpClient 的目标是发送和接收 HTTP 报文。HttpClient 不会去缓存内容,不会执行嵌入在 HTML 页面中的 javascript 代码,猜测内容类型,重新格式化请求/重定向 URI,或者其它和 HTTP运输无关的功能。(摘自翻译的文档,后面很多也是)。
(1)请求
HTTP请求包,HttpClient支持所有定义在HTTP/1.1版本中的HTTP方法: GET, HEAD, POST, PUT, DELETE,TRACE 和OPTIONS。 对于每个方法类型都有一个特殊的类: HttpGet, HttpHead, HttpPost,HttpPut,HttpDelete,HttpTrace 和 HttpOptions。 请求的 URI 是统一资源定位符,它标识了应用于哪个请求之上的资源。HTTP 请求 URI包含一个协议模式,主机名称,可选的端口,资源路径,可选的查询和可选的片段。
请求包由三个部分构成,分别是:方法名-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求包(GET)的例子:
GET /index.jsp HTTP/1.1
Accept-Language: zh-cn
Connection: Keep-Alive
Host: 192.168.0.106
Content-Length: 37
userName=new_andy&password=new_andy
可以对照着理解,最后一行为正文,正文与HTTP头部有一个空行(/r/n)分隔
(2)响应
HTTP 响应是由服务器在接收和解释请求报文之后返回发送给客户端的报文。响应报文的第一行包含了协议版本,之后是数字状态码和相关联的文本段,简单来说分别是:协议-状态代码-描述,应答头,应答正文。看个例子
HTTP/1.1 200 OK
Date: Sun, 15 Apr 2012 04:27:07 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 156
好了,我们可以看个获取手机号归属地等相关信息的例子

写的时候,发现真的是不清不楚,太丢人,权当开了个理解的口子吧。这个是从 hao123 网站上找的链接,然后把表单需要的数据找出来用的,不保证一直有效。里面的手机号换成自己的啊。

参考:

官方教程翻译:http://download.csdn.net/detail/w7849516230/4227117

HttpClient入门:http://www.ibm.com/developerworks/cn/opensource/os-httpclient/



分享到:
评论

相关推荐

    java后台访问url需要的包——httpclient方式

    java后台访问url需要的包,没时间好好整理,包可能多几个

    实现http协议两端httpserver和httpclient

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它是一个基于请求与响应模型的、无状态的、应用层协议,通常运行在TCP/IP协议之上。在本项目中...

    Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)

    这个库使得开发者能够方便地与Web服务器进行交互,处理各种HTTP协议相关的任务。在标题和描述中提到的"Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)",是使用HttpClient库时必须...

    Spring 实现远程访问详解——httpclient

    本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问流程 1) 服务器在控制器定义远程访问请求映射路径 2) 客户端通过apache httpclient的...

    java实现http协议jar包

    3. **httpcore-4.4.6.jar**:这是Apache HttpComponents的核心模块,提供HTTP协议处理的基本构建块,如连接管理和传输机制。它是HttpClient的基础,处理HTTP请求和响应的低级细节。 4. **commons-codec-1.9.jar**:...

    java使用HttpClient通过url下载文件到本地

    在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...

    Java HttpClient 全部的jar包

    6. `httpcore-4.x.x.jar`: Apache HttpCore是HttpClient的基础组件,提供HTTP协议处理和I/O操作的低级接口。它是HttpClient进行网络通信的基础。 7. `httpmime-4.x.x.jar`: 这个库扩展了HttpClient,支持MIME类型的...

    java httpclient 模拟登录

    在Java编程中,HttpClient库是Apache提供的一款强大的HTTP客户端工具,用于执行HTTP请求,包括GET、POST、PUT等多种HTTP方法。在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站...

    JAVA利用HttpClient进行HTTPS接口调用

    在Java编程中,HttpClient是一个非常重要的库,常用于执行HTTP请求。当涉及到HTTPS接口调用时,HttpClient可以处理加密通信,确保数据传输的安全性。在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现...

    Java 使用HttpClient保持SESSION状态

    在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或大量HTTP请求时。在处理Web应用程序时,有时我们需要保持用户的登录状态,即SESSION状态。这通常涉及到Cookie管理,...

    JAVA httpclient jar下载

    httpclient常用封装工具 doGet(String url, Map, String> param) doPost(String url, Map, String> param) doPostJson(String url, String json)

    java实现httpget和httppost请求httpclient-4.3.1.jar包

    利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpget和httppost请求。

    HttpClient包及例子

    HttpClient是Apache基金会开发的一个Java库,它为Java开发者提供了一种简单且强大的API来执行HTTP请求,无论是GET、POST还是其他HTTP方法。这个库的主要目标是简化与HTTP服务器的交互,使得开发人员能够轻松地创建...

    httpclient.jar包下载.zip

    HttpClient是Apache基金会开发的一个Java库,它为Java程序员提供了一个强大的、可信赖的HTTP客户端API。这个库使得从Java程序中发起HTTP请求变得简单,包括GET、POST以及其他HTTP方法。在本文中,我们将深入探讨...

    java 访问 wcf 示例(使用的HttpClient)

    Apache HttpClient是一个强大的HTTP客户端库,允许Java开发者方便地发起HTTP请求并处理响应。在访问WCF服务时,HttpClient是一个常用的选择,因为它支持POST、GET等多种HTTP方法,可以处理认证、重定向等问题。 三...

    Java-HttpClient帮助文档

    Java HttpClient是Apache软件基金会的Apache HTTP Components项目中的一个核心组件,它提供了一个强大的、高度可定制的客户端HTTP通信API。这个工具广泛应用于Java开发者中,用于执行HTTP请求,获取响应,处理各种...

    httpclient jar包——相关jar

    httpclient jar包——相关jar,用于http相关开发! httpclient jar包——相关jar,用于http相关开发! httpclient jar包——相关jar,用于http相关开发!

    java-http请求jar包

    在Java中,Apache HttpClient库是一个强大的工具,它允许开发者高效、灵活地处理HTTP请求。这个"java-http请求jar包"实际上就是Apache HttpClient的4.5.5版本,一个包含了所有必要组件的压缩文件。 Apache ...

    java实现HttpClient异步请求资源的方法

    以下是一个使用HttpClient进行异步请求的Java示例: ```java import java.util.concurrent.CountDownLatch; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org....

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    在IT行业中,HttpClient是一个常用的Java库,用于执行HTTP和HTTPS请求。这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常...

Global site tag (gtag.js) - Google Analytics