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;
    }

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat 15 激活码【中文破解版】

    (navicat 15 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
  • Java Session获取/销毁

    Java Session获取/销毁Session会话机制,它是保存在服务器里面的,就是当我们进入一个浏览器,浏览器会自动给我们创建一个session保存用户的信息,当关闭浏览器的时候,session就销毁了,Session在web项目中是经常用到的。下面是session的用法。Session在web项目中的登录是基本都用上的,那么就以账号登录为例:代码只是展示了最里面判断登录成功并保存数据到session的//获取ses…

    2022年7月12日
  • 史上最详细的 JDK 1.8 HashMap 源码解析

    史上最详细的 JDK 1.8 HashMap 源码解析可能是史上最详细的HashMap源码解析。

    2022年7月23日
  • 【免费分享】让思路更清晰,思维导图教程及工具[通俗易懂]

    思维导图,让思路更清晰,结构更完整。当你大脑一片混乱不知道该从什么地方做起,可以试着使用一下思维导图工具。昨天列了一下这一年关于自己提升的一些方面,使用思维导图进行简单的列举,有一些好友希望知道我使用的是那个工具来画思维导图的。下面简单介绍一些思维导图工具,在日常生活和工作中希望能够帮助到你。XMind【离线】XMind是一个开源的脑图项目,可以自由下载使用。有XMind Plus…

    2022年2月28日
  • 冯诺依曼与哈佛结构的区别[通俗易懂]

    冯诺依曼与哈佛结构的区别[通俗易懂]cortexM3,M4主要采用哈弗结构       个人理解:最主要的区别在于程序空间和数据空间是否是一体的,冯·诺依曼结构数据空间和地址空间是不分开的,而哈佛结构数据空间和地址空间是分开的      哈弗结构的优势:如果采用流水线设计,如三级流水线:取指,译指,…

    2022年10月4日
  • Bootstrap3和4模板

    Bootstrap3和4模板Bootstrap3<!DOCTYPEhtml><htmllang=”zh-CN”><head><metacharset=”utf-8″><!–可以让部分国产浏览器默认采用高速模式渲染页面–><metaname=”renderer”content=”webkit”><!–为了让IE浏览器运行最新的渲染模式下–><metahttp-equiv

    2022年7月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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