一文告诉你如何使用java调用http接口
程序如下:
添加apache相关maven依赖:
1 <dependency>
2 <groupId>org.apache.commons</groupId>
3 <artifactId>commons-lang3</artifactId>
4 <version>3.7</version>
5 </dependency>
POST请求如下:
1 import com.alibaba.fastjson.JSONObject;
2 import org.apache.http.HttpEntity;
3 import org.apache.http.NameValuePair;
4 import org.apache.http.client.entity.UrlEncodedFormEntity;
5 import org.apache.http.client.methods.CloseableHttpResponse;
6 import org.apache.http.client.methods.HttpGet;
7 import org.apache.http.client.methods.HttpPost;
8 import org.apache.http.client.utils.URIBuilder;
9 import org.apache.http.entity.StringEntity;
10 import org.apache.http.impl.client.CloseableHttpClient;
11 import org.apache.http.impl.client.HttpClients;
12 import org.apache.http.message.BasicHeader;
13 import org.apache.http.message.BasicNameValuePair;
14 import org.apache.http.util.EntityUtils;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import java.util.ArrayList;
18 import java.util.List;
19
20 /**
21 * HttpClient发送POST请求
22 */
23 public class HttpClientService {
24
25
26 /**
27 * 发送POST请求
28 * @param url
29 * @param map集合
30 * @return JSON
31 * @throws Exception
32 */
33 public static Object sendPost(String url, Map<String, String> map) throws Exception{
34 JSONObject jsonObject = null;
35 CloseableHttpClient client = null;
36 CloseableHttpResponse response = null;
37 try{
38 /**
39 * 创建一个httpclient对象
40 */
41 client = HttpClients.createDefault();
42 /**
43 * 创建一个post对象
44 */
45 HttpPost post = new HttpPost(url);
46
47 JSONObject jsonParam = new JSONObject();
48 Set<String> set = map.keySet();
49 for (String str : set) {//将Map转换成JSONObject
50 jsonParam.put(str, map.get(str));
51 }
52 JSONArray jsonArray = new JSONArray();
53 jsonArray.add(jsonParam);//将JSONObject转换成JSONArray入参
54
55 /**
56 * 设置上传byte[]数组文件流
57 builder.addBinaryBody("data", byteOutStream.toByteArray(), ContentType.MULTIPART_FORM_DATA, "AudioFile.wav");
58 HttpEntity entity = builder.build();
59 */
60
61 /**
62 * 设置上传单一对象
63 */
64 StringEntity entity = new StringEntity(jsonArray.toString(), "utf-8");
65
66 /**
67 * 设置请求的内容
68 */
69 post.setEntity(entity);
70 /**
71 * 设置请求的报文头部的编码
72 */
73 post.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));
74 /**
75 * 设置请求的报文头部的编码
76 */
77 post.setHeader(new BasicHeader("Accept", "text/plain;charset=utf-8"));
78 /**
79 * 执行post请求
80 */
81 response = client.execute(post);
82 /**
83 * 获取响应码
84 */
85 int statusCode = response.getStatusLine().getStatusCode();
86 if (200 == statusCode){
87 /**
88 * 通过EntityUitls获取返回内容
89 */
90 String result = EntityUtils.toString(response.getEntity(),"UTF-8");
91 /**
92 * 转换成json,根据合法性返回json或者字符串
93 */
94 try{
95 jsonObject = JSONObject.parseObject(result);
96 return jsonObject;
97 }catch (Exception e){
98 return result;
99 }
100 }else{
101 LOGGER.error("HttpClientService-line: {}, errorMsg:{}", 146, "POST请求失败!");
102 }
103 }catch (Exception e){
104 LOGGER.error("HttpClientService-line: {}, Exception:{}", 149, e);
105 }finally {
106 response.close();
107 client.close();
108 }
109 return null;
110 }
111
112 }
GET请求如下:
1 import com.alibaba.fastjson.JSONObject;
2 import org.apache.http.HttpEntity;
3 import org.apache.http.NameValuePair;
4 import org.apache.http.client.entity.UrlEncodedFormEntity;
5 import org.apache.http.client.methods.CloseableHttpResponse;
6 import org.apache.http.client.methods.HttpGet;
7 import org.apache.http.client.methods.HttpPost;
8 import org.apache.http.client.utils.URIBuilder;
9 import org.apache.http.entity.StringEntity;
10 import org.apache.http.impl.client.CloseableHttpClient;
11 import org.apache.http.impl.client.HttpClients;
12 import org.apache.http.message.BasicHeader;
13 import org.apache.http.message.BasicNameValuePair;
14 import org.apache.http.util.EntityUtils;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import java.util.ArrayList;
18 import java.util.List;
19
20 /**
21 * HttpClient发送GET请求
22 */
23 public class HttpClientService {
24
25
26 /**
27 * 发送GET请求
28 * @param url请求url
29 * @param name请求参数
30 * @return JSON
31 * @throws Exception
32 */
33 public static Object sendGet(String url,String name) throws Exception{
34 JSONObject jsonObject = null;
35 CloseableHttpClient client = null;
36 CloseableHttpResponse response = null;
37 try{
38 /**
39 * 创建HttpClient对象
40 */
41 client = HttpClients.createDefault();
42 /**
43 * 创建URIBuilder
44 */
45 URIBuilder uriBuilder = new URIBuilder(url);
46
47 /**
48 * 设置参数
49 */
50 uriBuilder.addParameters(name);
51 /**
52 * 创建HttpGet
53 */
54 HttpGet httpGet = new HttpGet(uriBuilder.build());
55 /**
56 * 设置请求头部编码
57 */
58 httpGet.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));
59 /**
60 * 请求服务
61 */
62 response = client.execute(httpGet);
63 /**
64 * 获取响应吗
65 */
66 int statusCode = response.getStatusLine().getStatusCode();
67
68 if (200 == statusCode){
69 /**
70 * 获取返回对象
71 */
72 HttpEntity entity = response.getEntity();
73 /**
74 * 通过EntityUitls获取返回内容
75 */
76 String result = EntityUtils.toString(entity,"UTF-8");
77 /**
78 * 转换成json,根据合法性返回json或者字符串
79 */
80 try{
81 jsonObject = JSONObject.parseObject(result);
82 return jsonObject;
83 }catch (Exception e){
84 return result;
85 }
86 }else{
87 LOGGER.error("HttpClientService-line: {}, errorMsg{}", 97, "GET请求失败!");
88 }
89 }catch (Exception e){
90 LOGGER.error("HttpClientService-line: {}, Exception: {}", 100, e);
91 } finally {
92 response.close();
93 client.close();
94 }
95 return null;
96 }
97
98 }
文章参考:
总语:
我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!
一文告诉你如何使用java调用http接口的更多相关文章
- Java 调用http接口(基于OkHttp的Http工具类方法示例)
目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- (二)通过JAVA调用SAP接口 (增加一二级参数)
(二)通过JAVA调用SAP接口 (增加一二级参数) 一.建立sap连接 请参考我的上一篇博客 JAVA连接SAP 二.测试项目环境准备 在上一篇操作下已经建好的环境后,在上面的基础上新增类即可 三. ...
- Java调用RestFul接口
使用Java调用RestFul接口,以POST请求为例,以下提供几种方法: 一.通过HttpURLConnection调用 1 public String postRequest(String url ...
- [Java] java调用wsdl接口
前提: ① 已经提供了一个wsdl接口 ② 该接口能正常调用 步骤1:使用cxf的wsdl2java工具生成本地类 下载CXF:http://cxf.apache.org/download.html ...
- Java调用第三方接口工具类(json、form)
1.JSON值访问 /** * 调用对方接口方法 * @param path 对方或第三方提供的路径 * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析 ...
- java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport
网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1 ...
- Java调用第三方接口示范
在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...
- 三种方法实现java调用Restful接口
1,基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring ...
- Java 调用 php接口(Ajax)(二)
由于项目里面需要用到Java调用PHP的充值接口,所以学习了一下,以下这个Demo是个小小的例子,写下来做个笔记> jsp页面: <%@ page language="java& ...
随机推荐
- 【会员题】253. 会议室 II
会议室II 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间s1,e1,s2,e2]..](si<ei) ,为避免会议冲突,同时要考虑充分 利用会议室资源,请你计算至少需要多少间 ...
- DataGear数据可视化分析平台介绍
DataGear 是一款开源免费的数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL.CSV.Excel.HTTP接口.JSON等多种数据源. 系统特点: 友好的数据源接入 支持运行时接 ...
- 【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
问题描述 是否可以将Swagger 的API定义导入导Azure API Management中? 操作步骤 是的,可以通过APIM门户导入单个的API Swagger定义文件.具体步骤如下: 第一步 ...
- Java 如何自定义异常类
1 package com.bytezero.throwable; 2 3 /** 4 * 5 * @Description 如何自定义异常类 6 * @author Bytezero·zhengle ...
- .NET集成DeveloperSharp实现数据分页
数据分页,几乎是任何应用系统的必备功能.但当数据量较大时,分页操作的效率就会变得很低.大数据量分页时,一个操作耗时5秒.10秒.甚至更长时间都是有可能的,但这在用户使用的角度是不可接受的-- 数据分页 ...
- Fiddler修改响应体
方法1 将请求从左侧列表中,拖入AutoResponder中. 然后右键规则,点击编辑 修改后点击save 方法2 在AutoResponder中选择Create New Response也可类似方式 ...
- 使用Servlet进行页面跳转的两种方式
最近在教学生学习JavaWeb相关的技术,刚好讲到Java当中的Servlet,一个服务端的小程序. 也在和学生讲使用Servlet如何进行页面跳转,一种方式是使用请求转发进行页面跳转,一种方式 是使 ...
- vscode复制相对路径时是反斜杠\,改为正斜杠/ [转]
痛点:复制路径的时候斜杠不对 解决:explorer.copyRelativePathSeparator 设置 在跳出来的设置页面的搜索栏里输入explorer.copyRelativePathSep ...
- dangle = dance + toggle - dan 向上跳 gle 摆动
dangle = dance + toggle - dan 向上跳 gle 摆动 dangle 英 [ˈdæŋɡl] 美 [ˈdæŋɡl] v.悬垂;悬挂;悬荡;悬摆;提着(某物,任其自然下垂或摆动) ...
- vscode vue 鼠标Ctrl+单击 函数跳转 插件名称:vue-helper