一文告诉你如何使用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& ...
随机推荐
- Java 通过属性名称读取或者设置实体的属性值
原因 项目实战中有这个需求,数据库中配置对应的实体和属性名称,在代码中通过属性名称获取实体的对应的属性值. 解决方案 工具类,下面这个工具是辅助获取属性值 import com.alibaba.fas ...
- 【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
问题描述 在App Service for Linux环境中,部署PHP应用,使用Nginx服务器.因为PHP应用中所有静态资源的URL使用的默认域名为 https://example.com:808 ...
- php编写日历类
<?php /** * 日历类 * Class Calendar * @author fengzi * @date 2022-05-05 15:42 */ class Calendar{ pro ...
- ansible 自动化运维(1)
ansible 简介 ansible 是什么? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量 ...
- Spring 知识点
Spring Spring 是什么? Spring为了解决企业级应用的复杂性而创建,简化开发. 如下简化: 基于POJO的轻量级和最小侵入性编程: 以IoC(控制反转).DI(依赖注入)和面向接口实现 ...
- gitee github 左侧栏树形显示插件 Octotree codetree 浏览器插件
起因 看到一位仁兄用gitee做仓库 https://gitee.com/zhengqingya/java-developer-document 然后左侧栏挺方便(抖音视频) 下载 chrome扩展市 ...
- 浏览器的文件访问 API 入门(英文)- 资料
浏览器的文件访问 API 入门(英文)- 资料 浏览器现在提供了文件访问 API(File System Access API),允许网页 JS 脚本读写本地文件,本文是一个详细的介绍.另外,也可以参 ...
- 谈谈Android中的消息提示那些坑
Android中的消息提示无非就那几种,弹个窗(Toast或SnackBar),或者是弹出个对话框(Dialog),最近在使用的时候也是遇到了问题,有时候导致APP闪退 稍微研究会,总结了一下使用过程 ...
- electron 中如何安装或更新 vuejs-devtool 最新稳定版
手上正在开发的项目是vue3.0 通过添加 vue-cli-plugin-electron-builder 插件生成 electron 项目,项目在开发过程中发现 beta版的 vuejs-devto ...
- 后端基础PHP-PHP简介及基本函数
后端基础PHP-PHP简介及基本函数 1.PHP简单介绍 2.PHP基本语法 一.PHP简单介绍 PHP(超文本预处理器),是一种通用的开源脚本语言,标准的后端语言 比较常见的后端语言,ASP|ASP ...