文章目录

  • 发送get 请求(方式一)
  • 发送get 请求(方式二)
  • 发送post请求(参数以表单方式提交)
  • 发送Post请求(参数以JSON方式提交)
  • 以上方法用到的包,可自行来这里cv

发送get 请求(方式一)

public static void doGet(String url){//1.获取httpclientCloseableHttpClient httpClient = HttpClients.createDefault();//接口返回结果CloseableHttpResponse response = null;try {//1.创建get请求HttpGet httpGet = new HttpGet(url);//2.设置请求和传输超时时间RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();httpGet.setConfig(requestConfig);/*此处可以添加一些请求头信息,例如:httpGet.addHeader("content-type","text/xml");*///3.提交参数response = httpClient.execute(httpGet);//4.得到响应信息int statusCode = response.getStatusLine().getStatusCode();//5.判断响应信息是否正确if(HttpStatus.SC_OK != statusCode){//终止并抛出异常httpGet.abort();throw new RuntimeException("HttpClient,error status code :" + statusCode);}} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {//8.关闭所有资源连接if(null != response){try {response.close();} catch (IOException e) {e.printStackTrace();}}if(null != httpClient){try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}}}

发送get 请求(方式二)

public static JSONObject sendGet(String url) throws IOException, URISyntaxException {JSONObject httpresponse = null;CloseableHttpClient client = HttpClients.createDefault();URIBuilder uri = new URIBuilder(url);HttpGet get = new HttpGet(uri.build());//get.addHeader("access_token", accessToken);CloseableHttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();httpresponse = JSONObject.parseObject(EntityUtils.toString(entity, "utf-8"));response.close();client.close();return httpresponse;}

发送post请求(参数以表单方式提交)

public static JSONObject doPost(String url, Map<String,Object> content){CloseableHttpClient client = HttpClients.createDefault();HttpPost request =new HttpPost();JSONObject httpresponse = null;try{request.setURI(new URI(url));List<NameValuePair> list =new ArrayList<NameValuePair>();if(MapUtils.isNotEmpty(content)){for(Map.Entry<String,Object> entry:content.entrySet()){list.add(new BasicNameValuePair(entry.getKey(),(String)entry.getValue()));}}request.setEntity(new UrlEncodedFormEntity(list,"UTF-8"));request.setHeader("Content-Type","application/x-www-form-urlencoded");HttpResponse response =client.execute(request);// 返回json格式String result = EntityUtils.toString(response.getEntity());httpresponse = JSONObject.parseObject(result);}catch(Exception e){System.out.println(e.getMessage());}return httpresponse;}

发送Post请求(参数以JSON方式提交)

创建JSONObject参数实体:
JSONObject jsonParam = new JSONObject();
jsonParam.put(key,value);

public static JSONObject sendPost(JSONObject json,String url) {CloseableHttpClient client = HttpClients.createDefault();HttpPost post = new HttpPost(url);post.setHeader("Content-Type", "application/json");//post.addHeader("token", "A9NN4VcSys-Y4cUsIReQj-sCCzpMjwP_jLvT");JSONObject response = null;try {StringEntity s = new StringEntity(json.toString(), "utf-8");s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));post.setEntity(s);// 发送请求HttpResponse httpResponse = client.execute(post);if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {System.out.println("请求服务器成功,做相应处理");} else {System.out.println("请求服务端失败");}// 返回json格式String result = EntityUtils.toString(httpResponse.getEntity());response = JSONObject.parseObject(result);} catch (Exception e) {log.error("请求异常:"+e.getMessage());throw new RuntimeException(e);}return response;}

以上方法用到的包,可自行来这里cv

import org.apache.http.entity.StringEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections4.MapUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
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.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

使用HttpClients进行http请求相关推荐

  1. HttpClient ||GET请求||带参数的GET请求

    HttpClient 网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页. 这里使用Java的HT ...

  2. 爬虫 spider05——使用httpclient发送get请求、post请求

    百度解释 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的 ...

  3. 微信公众号post方法Java_Java HttpClient 如何伪装微信浏览器进行POST请求

    当我用HttpClient的post去请求外部微信支付跳转时得到一个返回值: {"code":"XXXXXXXXX,"message":"请 ...

  4. java如何通过client客戶端http实现get/ post请求传递json参数到restful 服务接口

    一.首先在client端,导入maven相关依赖(httpclient以及json相关依赖) <dependencies><dependency><groupId> ...

  5. httpf发送 json_Java用HttpClient4发送http/https协议get/post请求,发送map,json,xml,txt数据...

    刚写出来的,还未经测试, HttpUtil.java import java.io.IOException; import java.io.UnsupportedEncodingException; ...

  6. HttpClient 带参数get请求

    背景: 本例中使用HttpClient Get请求下载存储系统中的文件.根据存储系统提供的接口文档需要传入参数. 实例1(使用字符串直接拼接get请求中的参数) 1.参数: filename:存储系统 ...

  7. 使用java的HttpClient实现抓取网页数据

    网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议来访问互联网上的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议来访问网页. 1.pom依赖 <depende ...

  8. HttpClient工具类

    HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...

  9. 2018-04-22接口自动化测试学习心得(1)

    根据接口文档写接口测试用例-->添加接口自动化测试项目相关依赖(httpclient+testng+poi-ooxml+log4j+mail+mysql-connector-java)--> ...

最新文章

  1. php JSON数据格式化输出方法
  2. 14.查找概论与顺序查找
  3. 前端学习之html——基本结构
  4. 笔记-项目干系人管理-规划干系人管理
  5. qtreewidget点击空白处时取消以选项_VUE+elementUI 点击页面空白处弹窗不隐藏
  6. vue 开发2017年变化回顾及2018年展望
  7. 模型视图控制器mvc
  8. java 用户、角色、权限数据库设计
  9. webdriver原理_(最新版)如何正确移除 Pyppeteer 中的window.navigator.webdriver
  10. 【渝粤教育】国家开放大学2018年秋季 1131t卫生经济学 参考试题
  11. CF633H Fibonacci-ish II 莫队、线段树、矩阵乘法
  12. 60秒倒计时实现的两种方式
  13. Linux SSH服务启动,如何打开22端口?如何开启ssh远程链接
  14. 20年进入下半赛程,你变强了吗?
  15. 《黑客帝国》说的是什么?
  16. write和read返回值详解
  17. jQuery Ajax 的使用 方法列表 详解教程
  18. C#计算一年有多少周
  19. 编写一个制造各种车辆的程序。包含三个类,具体要求如下: (1)基类Vehicle,包含轮子数和汽车自身重量两个属性,一个两参数的构造方法,一个显示汽车信息的方法; (2)小轿车类Car,增加载客数属性
  20. Http协议和Python调试过程

热门文章

  1. 整个公司的电脑时间比北京时间快三分钟
  2. 浅析 RISC-V 生态架构
  3. 中级软件测试笔试题100精讲_(完整版)软件测试笔试题及答案
  4. mybatis argument type mismatch
  5. MVG读书笔记——三维空间中的欧氏变换
  6. try(){}catch(){}
  7. ubuntu篇----完美解决ubuntu中qq图片无法加载的问题
  8. Mac启用Root用户
  9. Molly 正式加入微软 IE team
  10. GHOST备份文件消失的原因及解决方法