程序如下:

添加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. 【.Net Core】.Net Core 源码分析与深入理解 - 入口 Program.cs (一)

    研究原因:学习 .Net Core 两年有余,实际项目也使用了一年半,自己的技术已经到了瓶颈,需要有一个突破,我觉得首先研究架构师的设计思想,其次分析一下.Net Core的源码,这将会是一个很好的学 ...

  2. 了解 Docker 网络

    本章将会简单地讲述 Docker 中的网络,对于 CNM.Libnetwork 这些,限于笔者个人水平,将不会包含在内. Docker 的四种网络模式 Docker 有 bridge.none.hos ...

  3. [manjaro linux] 安装完成之后的配置工作,以及常用软件的安装

    emmm 很久没有更新了,绝对不是丢掉了博客帐号,有时间还是要好好装饰以下博客的... https://zhuanlan.zhihu.com/p/114296129 看到很多过程 sudo pacma ...

  4. 2、mysql存储引擎

    存储引擎 1 存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎. 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 .存 ...

  5. Dapr v1.13 版本已发布

    Dapr是一套开源.可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性.微服务.无状态以及有状态等应用程序类型.Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统 ...

  6. Django 初步使用

    Django 框架系列 目录 Django 框架系列 一. 安装启用 1.1 主流web框架概述 1.2 安装版本 1.3 启动的两种方式 1)命令行创建 2)pycharm创建 3)两种方式的区别 ...

  7. C++标准库字符串流sstream

    sstream与strstream 在C++有两种字符串流,一种在<strstream>中定义,另一种在<sstream>中定义,两者的区别如下: strstream里包含st ...

  8. Spring Boot 2.0 新人会踩的坑--启动报404错误

    转载自:http://www.javaman.cn/channels/sb2 启动程序,验证效果 根据图示,点击按钮,来启动 Spring Boot Web 程序, 查看控制台输出: . ____ _ ...

  9. Grails批改默认启动端口

    Grails修改默认启动端口 Grails默认启动端口号是8080,有几种修改的方式: 一.在官网文档中有介绍: grails -Dserver.port=8090 run-app -Dserver. ...

  10. 16_AAC解码实战

    本文主要讲解:如何将AAC编码后的数据解码成PCM. 命令行 用法非常简单: ffmpeg -c:a libfdk_aac -i in.aac -f s16le out.pcm -c:a libfdk ...