JavaEE或者Android的开发者对HttpClient一定不陌生,实际上这是一个在项目中经常被用到的框架,框架本身用法很简单,网上有很多这方面的资料,这里只是一个简单的使用总结。

当在实际的项目开发中需要作为客户端发送HTTP请求时,HttpClient是个不错的选择,下面简单介绍两种GET请求。

方法一,直接拼接参数

package com.zws.httpclient;import java.io.IOException;import org.apache.http.HttpEntity;
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 org.junit.Test;public class ClientGet {static String uri = "http://localhost:8080/resteasy/rest/user/";static String CHAR_SET = "UTF-8";@Testpublic void get0() {String path = "getUserDetail2?userId=23&status=1";//直接拼接参数CloseableHttpClient client = HttpClients.createDefault();HttpGet get = new HttpGet(getUri(path));CloseableHttpResponse resp = null;try {resp = client.execute(get);int code = resp.getStatusLine().getStatusCode();//响应码System.out.println("resp code:" + code);HttpEntity entity = resp.getEntity();String msg = EntityUtils.toString(entity, CHAR_SET);//响应信息System.out.println("receive msg:" + msg);} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (resp != null) {try {resp.close();} catch (IOException e) {e.printStackTrace();}}}}public String getUri(String path) {return uri + path;}
}

方法二,利用URIBuilder辅助构造URI

package com.zws.httpclient;import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.Test;public class ClientGet {static String uri = "http://localhost:8080/resteasy/rest/user/";static String CHAR_SET = "UTF-8";@Testpublic void get1() {String path = "/resteasy/rest/user/getUserDetail2";CloseableHttpClient client = HttpClients.createDefault();CloseableHttpResponse resp = null;try {URIBuilder url = new URIBuilder();url.setScheme("http");url.setHost("localhost:8080");url.setPath(path);url.setParameter("userId", "23");url.setParameter("status", "1");URI uri = url.build();    System.out.println("url:" + uri.toString());HttpGet get = new HttpGet(uri);resp = client.execute(get);int code = resp.getStatusLine().getStatusCode();System.out.println("resp code:" + code);HttpEntity entity = resp.getEntity();String msg = EntityUtils.toString(entity, CHAR_SET);System.out.println("receive msg:" + msg);} catch (URISyntaxException e) {e.printStackTrace();} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (resp != null) {try {resp.close();} catch (IOException e) {e.printStackTrace();}}}}
}

转载于:https://blog.51cto.com/wenshengzhu/1717235

HttpClient之GET请求相关推荐

  1. 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。

    一个封装的使用Apache HttpClient进行Http请求(GET.POST.PUT等)的类. import com.qunar.payment.gateway.front.channel.mp ...

  2. Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  3. 【爬蟲】使用 httpclient进行get请求

    使用 httpclient进行get请求

  4. 【爬蟲】使用 httpclient进行POST请求

    [爬蟲]使用 httpclient进行POST请求

  5. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  6. C#中通过HttpClient发送Post请求

    C#中HttpClient进行各种类型的传输 我们可以看到, 尽管PostAsync有四个重载函数, 但是接受的都是HttpContent, 而查看源码可以看到, HttpContent是一个抽象类 ...

  7. Httpclient发送json请求

    一.Httpclient发送json请求 public String RequestJsonPost(String url){     String strresponse = null;     t ...

  8. 四种为HttpClient添加默认请求报头的解决方案

    HttpClient在Web调用中具有广泛的应用,而为它添加默认请求头是我们经常遇到的需求,本文介绍4种为HttpClient添加默认请求头的方式. 直接在创建的HttpClient对象的Defaul ...

  9. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView...

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

  10. httpclient的post请求超时

    前两天做项目,使用httpclient的post请求超时,检查代码也没问题.后来偶然在看日志的时候才发现问题所在. 现象 当post请求的返回数据少的时候应用没问题.当post请求返回的数据量在deb ...

最新文章

  1. Mybaits 运行原理流程图
  2. mybatis实现CRUD(不使用DAO)
  3. bootstrap tab 模拟点击_【第七课】Bootstrap的魅力
  4. mysql填写账户远程_mysql账户添加远程访问
  5. vs2008 sp1补丁安装到最后一点点的时候,就无法安装下去了 解决方法
  6. springcloud五大组件?注解_spring cloud实现简单的微服务架构
  7. mysql数字_MySQL 中的数字类型
  8. strstr查找子字符串函数
  9. 连接Linux服务器操作Oracle数据库
  10. 常见的c语言头文件作用,C语言的头文件的作用是什么?
  11. springmvc中常见的简单的文件上传和下载
  12. java rome,ROME - RSS聚合类库 - 组件类库 - JAVA开源项目 - 开源吧
  13. python调用cplex_python 调用cplex(设置 CPLEX 的 Python API)
  14. 9.触摸屏驱动(IIC)移植实战
  15. PCWorld:Google到底要干什么?
  16. 关于MDK调试stm32f072vbt6(HAL库)内部flash在擦除仿真时,卡死在擦除函数,同时弹出“Cannot access target.shutting down debug sessi
  17. R语言常用的绘图参数
  18. 【BZOJ3772】精神污染 DFS序+主席树
  19. 机器学习--西瓜书思维导图
  20. 关于APP界面布局设计的八种优缺点

热门文章

  1. [转载] 晓说——第18期:古代科举考试那些事——招生
  2. 解决RecyclerView在ScrollView中会置顶它上面的控件
  3. Spring Boot Spring MVC 异常处理的N种方法
  4. python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)...
  5. PyInstaller将python脚本打包成exe可执行程序
  6. What's going to be? 2016-Oct-12
  7. 一键安装lamp之php插件
  8. Ubuntu里的vi编辑器不好用的解决办法
  9. 轻量级的jQuery表单验证插件 - HAPPY.js
  10. ESFramework网络通信框架 4.0 性能测试