程序如下:

添加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接口的更多相关文章

  1. Java 调用http接口(基于OkHttp的Http工具类方法示例)

    目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...

  2. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  3. (二)通过JAVA调用SAP接口 (增加一二级参数)

    (二)通过JAVA调用SAP接口 (增加一二级参数) 一.建立sap连接 请参考我的上一篇博客 JAVA连接SAP 二.测试项目环境准备 在上一篇操作下已经建好的环境后,在上面的基础上新增类即可 三. ...

  4. Java调用RestFul接口

    使用Java调用RestFul接口,以POST请求为例,以下提供几种方法: 一.通过HttpURLConnection调用 1 public String postRequest(String url ...

  5. [Java] java调用wsdl接口

    前提: ① 已经提供了一个wsdl接口 ② 该接口能正常调用 步骤1:使用cxf的wsdl2java工具生成本地类 下载CXF:http://cxf.apache.org/download.html ...

  6. Java调用第三方接口工具类(json、form)

    1.JSON值访问 /** * 调用对方接口方法 * @param path 对方或第三方提供的路径 * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析 ...

  7. java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport

    网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1 ...

  8. Java调用第三方接口示范

    在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...

  9. 三种方法实现java调用Restful接口

    1,基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring ...

  10. Java 调用 php接口(Ajax)(二)

    由于项目里面需要用到Java调用PHP的充值接口,所以学习了一下,以下这个Demo是个小小的例子,写下来做个笔记> jsp页面: <%@ page language="java& ...

随机推荐

  1. 【会员题】253. 会议室 II

    会议室II 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间s1,e1,s2,e2]..](si<ei) ,为避免会议冲突,同时要考虑充分 利用会议室资源,请你计算至少需要多少间 ...

  2. DataGear数据可视化分析平台介绍

    DataGear 是一款开源免费的数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL.CSV.Excel.HTTP接口.JSON等多种数据源. 系统特点: 友好的数据源接入 支持运行时接 ...

  3. 【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中

    问题描述 是否可以将Swagger 的API定义导入导Azure API Management中? 操作步骤 是的,可以通过APIM门户导入单个的API Swagger定义文件.具体步骤如下: 第一步 ...

  4. Java 如何自定义异常类

    1 package com.bytezero.throwable; 2 3 /** 4 * 5 * @Description 如何自定义异常类 6 * @author Bytezero·zhengle ...

  5. .NET集成DeveloperSharp实现数据分页

    数据分页,几乎是任何应用系统的必备功能.但当数据量较大时,分页操作的效率就会变得很低.大数据量分页时,一个操作耗时5秒.10秒.甚至更长时间都是有可能的,但这在用户使用的角度是不可接受的-- 数据分页 ...

  6. Fiddler修改响应体

    方法1 将请求从左侧列表中,拖入AutoResponder中. 然后右键规则,点击编辑 修改后点击save 方法2 在AutoResponder中选择Create New Response也可类似方式 ...

  7. 使用Servlet进行页面跳转的两种方式

    最近在教学生学习JavaWeb相关的技术,刚好讲到Java当中的Servlet,一个服务端的小程序. 也在和学生讲使用Servlet如何进行页面跳转,一种方式是使用请求转发进行页面跳转,一种方式 是使 ...

  8. vscode复制相对路径时是反斜杠\,改为正斜杠/ [转]

    痛点:复制路径的时候斜杠不对 解决:explorer.copyRelativePathSeparator 设置 在跳出来的设置页面的搜索栏里输入explorer.copyRelativePathSep ...

  9. dangle = dance + toggle - dan 向上跳 gle 摆动

    dangle = dance + toggle - dan 向上跳 gle 摆动 dangle 英 [ˈdæŋɡl] 美 [ˈdæŋɡl] v.悬垂;悬挂;悬荡;悬摆;提着(某物,任其自然下垂或摆动) ...

  10. vscode vue 鼠标Ctrl+单击 函数跳转 插件名称:vue-helper