java调用第三方接口(项目亲测)

java调用第三方接口(项目亲测)publicstaticStringcompression(StringsmUrl,Stringdata){ //smUrl:接口地址//data:请求参数:应该是json格式,我直接把json转成String了OutputStreamWriterout=null;BufferedReaderbr=null;Stringresult=””;try{URLurl=n.

大家好,又见面了,我是你们的朋友全栈君。

直接复制过去,就是一个很好的工具类了,直接可以使用


import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.eas.predict.http.HttpConfig;
import com.aliyun.openservices.eas.predict.http.PredictClient;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
/** * @author buH * #data 2020/12/4 10:07 * 接口工具类 */
@Slf4j
public class HttpUtil { 

/** * post请求 * * @param URL 请求url * @param param 参数 * @param token 请求携带的token(如果需要) */
public static String doPost(String URL, JSONObject param, String token) { 

log.info("request address:"+URL);
OutputStreamWriter out = null;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
HttpURLConnection conn = null;
try { 

java.net.URL url = new URL(URL);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
if (token != null) { 

conn.setRequestProperty("token", token);
}
//获取输出流
if (param != null) { 

out = new OutputStreamWriter(conn.getOutputStream());
String jsonStr = param.toString();
out.write(jsonStr);
out.flush();
out.close();
}
//取得输入流,并使用Reader读取
if (200 == conn.getResponseCode()) { 

in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String line;
while ((line = in.readLine()) != null) { 

result.append(line);
}
} else { 

System.out.println("ResponseCode is an error code:" + conn.getResponseCode());
}
} catch (Exception e) { 

e.printStackTrace();
} finally { 

try { 

if (out != null) { 

out.close();
}
if (in != null) { 

in.close();
}
} catch (IOException ioe) { 

ioe.printStackTrace();
}
}
return result.toString();
}
/** * 向指定URL发送GET方法的请求 * * @param baseUrl 发送请求的URL * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return result 所代表远程资源的响应结果 */
public static String doGet(String baseUrl, String param) { 

String result = "";
BufferedReader in = null;
try { 

String urlNameString =baseUrl;
if(param!=null){ 

urlNameString = baseUrl + "?" + param;
}
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
connection.setRequestProperty("Charsert", "ISO-8859-1");
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { 

// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) { 

result += line;
}
}else{ 

return "Code="+connection.getResponseCode();
}
} catch (Exception e) { 

e.printStackTrace();
}
// 使用finally块来关闭输入流
finally { 

try { 

if (in != null) { 

in.close();
}
} catch (Exception e2) { 

e2.printStackTrace();
}
}
return result;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140932.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 建造者模式

    问题:相同的过程经过不同的处理方法得到不同的结果注意:1.基类保护属性的使用(该属性在子类中同为保护属性,只能类的成员变量调用)2.公共属性和公共方法全放在基类3.泛化、依赖、组合关系的

    2021年12月18日
  • 什么是热拔插?[通俗易懂]

    什么是热拔插?[通俗易懂](1)带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等,例如一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。(2)具体用学术的说法就是:热替换(Hotreplacement)、热添加(hotexpansion)和热升级(hotupgrade),而热插拔最早出现在服务器领域,…

  • webstorm好用的插件_chrome实用的插件

    webstorm好用的插件_chrome实用的插件CodeGlance代码的缩略图,VScode,sublime编辑器都有这个功能{:height=“200”width=“400”}MaterialThemeUI修改主题颜色,图标那些等等AngularJS支持angularjs的语法提示ideaVim可以让webstorm编辑器支持vimAceJump快速定位光标位置,有了它你可以丢弃鼠标了。eslint语…

  • zip文件的解压,获取字节流

    zip文件的解压,获取字节流

  • 数据库常用建表语句「建议收藏」

    数据库常用建表语句「建议收藏」Mysql数据库常用操作语句2017年09月16日12:17:11阅读数:629用户管理:  1、新建用户:    >CREATEUSERnameIDENTIFIEDBY’ssapdrow’;  2、更改密码:    >SETPASSWORDFORname=PASSWORD(‘fdddfd’);  3、权限管理    >SHOWG…

  • Python基础知识点整理之基本语法元素[通俗易懂]

    Python基础知识点整理之基本语法元素[通俗易懂]一、程序的格式框架1.缩进缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系。一般语句不需要缩进,顶行书写且不留空白。当表示分支、循环、函数、类等含义,在if,while,for,def,class等保留字所在的完整语句后通过英文冒号(:)结尾,并在之后进行缩进,表示前后代码之间的从属关系。代码编写中,缩进可以用Tab键实现,也可以用4个空格实现。缩进…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号