java调用第三方接口,请求方式 get,传参方式 param形式非json。
项目调用第三方接口,调用方式人家做了限制“请求方式 get 传参方式 param形式传参,非json”。所有有了下面的代码:
import com.alibaba.fastjson.JSONObject;
import com.spcp.platform.common.util.StringUtil;
import com.spcp.qypt.whpt.util.HttpClientUtil;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.*;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public JSONObject dybdy( ) throws Exception {
 // 接口需要的参数
        Map<String, String> paramMap = new ConcurrentHashMap<>(2);
        paramMap.put("jk", "123456");
        String result = HttpClientUtil.doGet("对方地址", paramMap, null);
        JSONObject jsonObject = JSONObject.parseObject(result);
        return jsonObject;
    }
public static String doGet(String url, Map<String, String> params, Map<String, String> headers) throws Exception {
    // 参数
    StringBuilder paramsBuilder = new StringBuilder(url);
    if (params != null) {
        if (!url.contains("?")) {
            paramsBuilder.append("?");
        }
        List<NameValuePair> list = new ArrayList<>();
        for (Map.Entry<String, String> stringStringEntry : params.entrySet()) {
            list.add(new BasicNameValuePair(stringStringEntry.getKey(), stringStringEntry.getValue()));
        }
        paramsBuilder.append(EntityUtils.toString(new UrlEncodedFormEntity(list, Charset.forName("UTF-8"))));
    }
    HttpGet httpGet = new HttpGet(paramsBuilder.toString());
    setHeader(headers, httpGet);
    return execute(httpGet);
}
private static void setHeader(Map<String, String> headers, HttpRequestBase requestBase) {
    if (headers == null) {
        return;
    }
    for (Map.Entry<String, String> stringStringEntry : headers.entrySet()) {
        requestBase.addHeader(stringStringEntry.getKey(), stringStringEntry.getValue());
    }
}
private static String execute(HttpUriRequest httpUriRequest) throws Exception {
    try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
        CloseableHttpResponse response = httpClient.execute(httpUriRequest);
        // 请求成功状态
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) {
                String tmp;
                StringBuilder result = new StringBuilder();
                while ((tmp = bufferedReader.readLine()) != null) {
                    result.append(tmp);
                }
                return result.toString();
            }
        }
    }
    return null;
}
public static String doPost(String url, Map<String, String> params, Map<String, String> headers) throws Exception {
    HttpPost httpPost = new HttpPost(url);
    if (params != null) {
        List<NameValuePair> list = new ArrayList<>();
        for (Map.Entry<String, String> stringStringEntry : params.entrySet()) {
            list.add(new BasicNameValuePair(stringStringEntry.getKey(), stringStringEntry.getValue()));
        }
        httpPost.setEntity(new UrlEncodedFormEntity(list, Charset.forName("UTF-8")));
    }
    setHeader(headers, httpPost);
    return execute(httpPost);
}
// 用到的jar包
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号