Java如何优雅的调用外部Api

简介: 在日常开发的时候,经常会遇到需要调用别人的接口的场景。但是每次需要的时候,都需要百度,很麻烦,所以这里总结一下,经常调用的方法。

停下脚步才注意到 世界被染得雪白

在日常开发的时候,经常会遇到需要调用别人的接口的场景。但是每次需要的时候,都需要百度,很麻烦,所以这里总结一下,经常调用的方法。
1.含有文件的post请求

public static String requestOCRForHttp(String url, Map<String, String> requestParams, String filePathAndName)
        throws Exception {
    String result = null;
    CloseableHttpClient httpClient = HttpClients.createDefault();
    /** HttpPost */
    HttpPost httpPost = new HttpPost(url);
    MultipartEntity reqEntity = new MultipartEntity(); // 建立多文件实例
    FileBody filebody = new FileBody(new File(filePathAndName));
    reqEntity.addPart("pic", filebody);// upload为请求后台的File upload;
    for (String key : requestParams.keySet()) {
        String value = requestParams.get(key);
        reqEntity.addPart(key, new StringBody(value, Charset.forName("utf-8")));
    }
    httpPost.setEntity(reqEntity); // 设置实体
    /** HttpResponse */
    CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
    try {
        HttpEntity httpEntity = httpResponse.getEntity();
        result = EntityUtils.toString(httpEntity, "utf-8");
        EntityUtils.consume(httpEntity);
    } finally {
        try {
            if (httpResponse != null) {
                httpResponse.close();
            }
        } catch (IOException e) {
            logger.info("## release resouce error ##" + e);
        }
    }
    return result;
}

2.单纯的Json

public static String sendHttpPost(String url, String JSONBody) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        httpPost.addHeader("Content-Type", "application/json");
        httpPost.setEntity(new StringEntity(JSONBody));
        CloseableHttpResponse response = httpClient.execute(httpPost);
//        System.out.println(response.getStatusLine().getStatusCode() + "\n");
        HttpEntity entity = response.getEntity();
        String responseContent = EntityUtils.toString(entity, "UTF-8"); 
//        System.out.println(responseContent);
        response.close();
        httpClient.close();
        return responseContent;
    }

3.String参数

public static String requestOCRForHttp(String url, Map<String, String> requestParams) throws Exception {
   
        String result = null;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        /** HttpPost */
        HttpPost httpPost = new HttpPost(url);
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        Iterator<Entry<String, String>> it = requestParams.entrySet().iterator();
//        System.out.println(params.toString());
        while (it.hasNext()) {
   
            Entry<String, String> en = it.next();
            String key = en.getKey();
            String value = en.getValue();
            if (value != null) {
   
                params.add(new BasicNameValuePair(key, value));
            }
相关文章
|
5月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
5月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
325 100
|
5月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
344 101
|
5月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
296 101
|
6月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
6月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
406 188
|
6月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
316 92
|
7月前
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
430 80
|
7月前
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
340 83
|
5月前
|
安全 Java API
使用 Java 构建强大的 REST API 的四个基本技巧
本文结合探险领域案例,分享Java构建REST API的四大核心策略:统一资源命名、版本控制与自动化文档、安全防护及标准化异常处理,助力开发者打造易用、可维护、安全可靠的稳健API服务。
274 2