Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程,
使用极为简单。一个字:爽!
1. 读取网页(HTTP/HTTPS)内容
下面给出的一个简单的例子用来访问某个页面
- public class SimpleClient
- {
- public static void main(String[] args) throws IOException
- {
- HttpClient client = new HttpClient();
- //设置代理服务器地址和端口
- //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);
- //使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https
- HttpMethod method = new GetMethod("");
- //使用POST方法
- //HttpMethod method = new PostMethod("");
- client.executeMethod(method);
- //打印服务器返回的状态
- System.out.println(method.getStatusLine());
- //打印返回的信息
- System.out.println(method.getResponseBodyAsString());
- //释放连接
- method.releaseConnection();
- }
- }
复制代码 在这个例子中首先创建一个HTTP客户端(HttpClient)的实例,然后选择提交的方法是GET或者 POST,最后在HttpClient实例上执行提交的方法,最后从所选择的提交方法中读取服务器反馈回来的结果。这就是使用HttpClient的基本 流程。其实用一行代码也就可以搞定整个请求的过程,非常的简单!
2. 以GET或者POST方式向网页提交参数
其实前面一个最简单的示例中我们已经介绍了如何使用GET或者POST方式来请求一个页面,本小节与之不同的是多了 提交时设定页面所需的参数,我们知道如果是GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开, 例如:,但是当使用POST方法时就会稍微有一点点麻烦。代码如下:
- public class SimpleHttpClient
- {
- public static void main(String[] args) throws IOException
- {
- HttpClient client = new HttpClient();
- client.getHostConfiguration().setHost("localhost:8888/abc", 80, "http");
- HttpMethod method = getPostMethod();//使用POST方式提交数据
- client.executeMethod(method);
- //打印服务器返回的状态
- System.out.println(method.getStatusLine());
- //打印结果页面
- String response =
- new String(method.getResponseBodyAsString().getBytes("8859_1"));
- //打印返回的信息
- System.out.println(response);
- method.releaseConnection();
- }
- /**
- * 使用GET方式提交数据
- * @return
- */
- private static HttpMethod getGetMethod(){
- return new GetMethod("/a.jsp?name=yeeku");
- }
- /**
- * 使用POST方式提交数据
- * @return
- */
- private static HttpMethod getPostMethod(){
- PostMethod post = new PostMethod("/a.jsp");
- NameValuePair simcard = new NameValuePair("book","疯狂Java讲义");
- post.setRequestBody(new NameValuePair[] { simcard});
- return post;
- }
- }
复制代码 在上面的例子中页面需要一个参数是book,这个参数值为疯狂Java讲义。
阅读(21167) | 评论(0) | 转发(0) |