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)


相关推荐

  • ASP也做工作流

    ASP也做工作流

  • 【JAVA定时器】四种常见定时器的原理和简单实现

    【JAVA定时器】四种常见定时器的原理和简单实现个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言定时器顾名思义,即定时触发某个事件,分离开来,即包含三个因素:定时,触发,某个事件,本文也将以此为基础介绍五种常见的定时器本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍1.1.目的定时器的目的即为了在某个时间点,程序自身主动触发某个事件,而不需要外力去开启或者启动,以节省人力并统一管理1.2.示例场景管理系统,需要每日12点.

  • eclipse怎么导入一个Java项目(莫要错过,最详细教程!)

    eclipse怎么导入一个Java项目(莫要错过,最详细教程!)对于eclipse软件,常规的打开文件方法是无法打开一个项目的,那么怎样导入一个java项目呢?方法如下第一步在电脑打开eclipse软件,点击file->Import,如下图所示:第二步选择General->ExistingProjectsintoworkspace,点击next,如下图所示:第三步点击选择要导入的项目路径,选好,点击finish,如下图所示:到此为止,已经导入成功了如果对你产生了帮助,那么请给博主一个小小的赞哦。…

  • matlab直方图均衡化代码各种方法_数据直方图matlab代码

    matlab直方图均衡化代码各种方法_数据直方图matlab代码学习目标:1.直方图均衡化在matlab的实现学习产出p=imread(‘liena.jpg’);g=rgb2gray(p);%读取图片灰度化的图像x=size(g,1);y=size(g,2);%得到图片的格式g_r=imhist(g)./(x*y);%图像的离散化直方图s=zeros(256,1);%均衡化直方图的容器picure=im2uint8(zeros(x,y));%均衡化后的图像的容器fori=1:256foru=1:is(i)=s(i)+g_…

  • vagrant共享目录出现“mount:unknown filesystem type ‘vboxsf‘”错误解决方法(亲测可行)

    vagrant共享目录出现“mount:unknown filesystem type ‘vboxsf‘”错误解决方法(亲测可行)

  • springboot zuul网关_ubuntu网关服务器搭建

    springboot zuul网关_ubuntu网关服务器搭建目录一.Zuul网关二.Zuul服务的前期准备2.1注册中心EurekaServer的搭建2.2EurekaService的搭建三.Zuul服务搭建五.Zuul的访问六.Zuul的更多功能前言:博主一直力求做到写博客尽量的详细来减少大家花在踩坑上的时间,若有写的不好或错误的地方,还需各方大佬指正。一.Zuul网关网关,是一种网络关口,既然是…

发表回复

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

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