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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FVWM_fw一流是什么意思

    FVWM_fw一流是什么意思国庆期间,把自己的FVWM好好整理了一下,现在我的桌面看上去是这个样子滴(点击可放大):我的.fvwm2rc可以下载。我的部分FVWM笔记:***   如何使用托盘      $sudoapt-getinstalltrayer      $trayer–widthtypepixel–width128–height32–edgebottom&***  

    2022年10月4日
    3
  • MySQL开发规范.pdf

    MySQL开发规范.pdf

    2022年2月20日
    37
  • PYTHON 2021.5.3激活码【在线注册码/序列号/破解码】

    PYTHON 2021.5.3激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    47
  • 拖库 洗库 撞库_地库拖车

    拖库 洗库 撞库_地库拖车间接转载地址:http://blog.csdn.net/daliaojie/article/details/42171177一,背景:用户数据泄露一直是如今互联网世界的一个焦点,从最近的京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战。对于大多数用户而言,撞库可能是一个很专业的名词,但是理

    2025年7月13日
    5
  • poe交换机和普通交换机区别_交换机可以接交换机吗

    poe交换机和普通交换机区别_交换机可以接交换机吗一个完整的POE系统包括供电端设备(PSE,PowerSourcingEquipment)和受电端设备(PD,PowerDevice)两部分,POE交换机为PSE设备的一种。PSE设备是为以太网客户端设备供电的设备,同时也是整个POE以太网供电过程的管理者。而PD设备是接受供电的PSE负载,即POE系统的客户端。POE交换机和普通交换机哪里不同?POE交换机和普通交换机有什么不同,P…

    2022年10月5日
    3
  • 笔记汇总目录

    笔记汇总目录SpringCloud微服务SpringCloud入门操作手册(Hoxton)RabbitMQRabbitMQRabbitMQ-Springboot整合LuceneSolrLuceneSolr811DockerDockerDocker案例Kubernetes原创Kubernetes原创k8s部署SpringCloud应用分布式事务分布式事务(一)Mysql本地事务和事务隔离级别分布式事务(二)分布式事务方案分布式事务(三)Seata分布式.

    2022年7月27日
    5

发表回复

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

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