JAVA中实现API对接时POST请求
【摘要】 在对接接口的时候,比如使用第三方的API接口时,需要在服务器端进行请求(比如接口端有地址校验,只能通过接口端地址访问的请求才能被通过),此时需要在后台完成接口的请求。1.POST请求1.1 首先先写一个post请求的通用方法 public static String httpPost(String urlStr,Map<String,String> params){ URL ...
在对接接口的时候,比如使用第三方的API接口时,需要在服务器端进行请求(比如接口端有地址校验,只能通过接口端地址访问的请求才能被通过),此时需要在后台完成接口的请求。
1.POST请求
1.1 首先先写一个post请求的通用方法
public static String httpPost(String urlStr,Map<String,String> params){
URL connect;
StringBuffer data = new StringBuffer();
try {
connect = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection)connect.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);//post不能使用缓存
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
OutputStreamWriter paramout = new OutputStreamWriter(
connection.getOutputStream(),"UTF-8");
String paramsStr = ""; //拼接Post 请求的参数
for(String param : params.keySet()){
paramsStr += "&" + param + "=" + params.get(param);
}
if(!paramsStr.isEmpty()){
paramsStr = paramsStr.substring(1);
}
paramout.write(paramsStr);
paramout.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
data.append(line);
}
paramout.close();
reader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return data.toString();
}
1.2 写一个调用post请求的接口方法
如果需要外面访问某些页面的时候进行调用,可以在前端写好方法,再在后端配置相应接口,里面后台配置对应参数调用。
getJsapiTicket(){
var Token = localStorage.getItem("Token_");
axios.defaults.headers.common['token'] = Token;
axios.request({
url: 'http://XXXX/getSignature',
method: 'GET'
}).then(res => {
if(res){
******
}
})
},
@GetMapping("/getJsapiTicket")
public RestResult getJsapiTicket(XXX XXX){
Map<String, String> map=new HashMap<>();
map.put("key1","value1");
map.put("key2", "value2");
return httpPost(url,map);
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)