您的位置:首页 > 理论基础 > 计算机网络

httpclient发送get请求并接收相应数据

2017-04-09 13:02 471 查看
终于开始我的实习生涯了,打算每星期发一篇自己遇到的需求或者总结,希望各位大神批评指正,也喜欢能来几个志同道合和我一起来学习,走上java大神之路

废话不多说,最近由于工作原因,开始接触netty,service已经也好,需要我做一个httpclient去发送http请求,网上搜了一下,一大堆的实例,不过有一些跑不起来,这里就为自己总结一下。

首先创建一个maven项目



之后引入相应架包,就是这里调了好久。架包版本不同会发生冲突,最新的版本猜想可能和自己的jdk也会发生冲突,我的是1.7的jdk,而现在最新的httpclient是4.5.3,可能这个对应的时1.8的jdk,本来想用最新的这个版本,可惜各种报错,最终选择了4.31版本
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>


需要注意的是这里的httpcore和httpclient所选版本要选择能依赖的

这是我选择了几个版本之后尝试之后唯一可以用的
下面就是代码:
package com.slz.demo.util;

import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

/**
* Created by shileizhou on 17-4-8.
*/
public class HttpClientUtils {

/**
* 发送 get请求
*/
public static void get(String url) {
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
// 创建httpget.
HttpGet httpget = new HttpGet(url);
System.out.println("executing request " + httpget.getURI());
// 执行get请求.
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// 获取响应实体
HttpEntity entity = response.getEntity();
System.out.println("--------------------------------------");
// 打印响应状态
System.out.println(response.getStatusLine());
if (entity != null) {
// 打印响应内容长度
System.out.println("Response content length: "
+ entity.getContentLength());
// 打印响应内容
System.out.println("Response content: "
+ EntityUtils.toString(entity));
}
System.out.println("------------------------------------");
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}


在主函数中跑起来

package com.slz.demo.client;

import com.slz.demo.util.HttpClientUtils;

/**
* Created by shileizhou on 17-4-8.
*/
public class HttpClient {
public static void main(String[] args){
HttpClientUtils.get("https://www.baidu.com?word=刘德华");
}

}


最后的结果为



今天就先分享这些,希望有小伙伴能一起学习 806029174
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: