使用HttpClients进行http请求
文章目录
- 发送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请求相关推荐
- HttpClient ||GET请求||带参数的GET请求
HttpClient 网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页. 这里使用Java的HT ...
- 爬虫 spider05——使用httpclient发送get请求、post请求
百度解释 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的 ...
- 微信公众号post方法Java_Java HttpClient 如何伪装微信浏览器进行POST请求
当我用HttpClient的post去请求外部微信支付跳转时得到一个返回值: {"code":"XXXXXXXXX,"message":"请 ...
- java如何通过client客戶端http实现get/ post请求传递json参数到restful 服务接口
一.首先在client端,导入maven相关依赖(httpclient以及json相关依赖) <dependencies><dependency><groupId> ...
- httpf发送 json_Java用HttpClient4发送http/https协议get/post请求,发送map,json,xml,txt数据...
刚写出来的,还未经测试, HttpUtil.java import java.io.IOException; import java.io.UnsupportedEncodingException; ...
- HttpClient 带参数get请求
背景: 本例中使用HttpClient Get请求下载存储系统中的文件.根据存储系统提供的接口文档需要传入参数. 实例1(使用字符串直接拼接get请求中的参数) 1.参数: filename:存储系统 ...
- 使用java的HttpClient实现抓取网页数据
网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议来访问互联网上的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议来访问网页. 1.pom依赖 <depende ...
- HttpClient工具类
HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...
- 2018-04-22接口自动化测试学习心得(1)
根据接口文档写接口测试用例-->添加接口自动化测试项目相关依赖(httpclient+testng+poi-ooxml+log4j+mail+mysql-connector-java)--> ...
最新文章
- php JSON数据格式化输出方法
- 14.查找概论与顺序查找
- 前端学习之html——基本结构
- 笔记-项目干系人管理-规划干系人管理
- qtreewidget点击空白处时取消以选项_VUE+elementUI 点击页面空白处弹窗不隐藏
- vue 开发2017年变化回顾及2018年展望
- 模型视图控制器mvc
- java 用户、角色、权限数据库设计
- webdriver原理_(最新版)如何正确移除 Pyppeteer 中的window.navigator.webdriver
- 【渝粤教育】国家开放大学2018年秋季 1131t卫生经济学 参考试题
- CF633H Fibonacci-ish II 莫队、线段树、矩阵乘法
- 60秒倒计时实现的两种方式
- Linux SSH服务启动,如何打开22端口?如何开启ssh远程链接
- 20年进入下半赛程,你变强了吗?
- 《黑客帝国》说的是什么?
- write和read返回值详解
- jQuery Ajax 的使用 方法列表 详解教程
- C#计算一年有多少周
- 编写一个制造各种车辆的程序。包含三个类,具体要求如下: (1)基类Vehicle,包含轮子数和汽车自身重量两个属性,一个两参数的构造方法,一个显示汽车信息的方法; (2)小轿车类Car,增加载客数属性
- Http协议和Python调试过程