JAVA中实现API对接时POST请求

举报
多米诺的古牌 发表于 2021/12/26 23:37:02 2021/12/26
【摘要】 在对接接口的时候,比如使用第三方的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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。