JAVA远程访问url并传递JSON格式字符串数据

使用org.apache.http下的工具类访问url,并传递json格式的数据字符串,可使用CookieStore

传递cookie的JSESSIONID数据,也可以为null。

public static Map sendUrlJsonData(String url, String json, CookieStore cookieStore) {
        Map map=new HashMap<>();
        final String CONTENT_TYPE_TEXT_JSON = "text/json";
        CloseableHttpClient buildSSLCloseableHttpClient = createSSLClientCookie(cookieStore);
        // 设置请求和传输超时时间
        RequestConfig requestConfig = RequestConfig.custom()
                .setSocketTimeout(30000).setConnectTimeout(30000).build();
        try {
            System.setProperty("jsse.enableSNIExtension", "false");
            HttpPost request = new HttpPost(url);
            request.setConfig(requestConfig);

request.setHeader("Content-Type", "application/json;charset=UTF-8");

            StringEntity stringEntity = new StringEntity(json);
            stringEntity.setContentType(CONTENT_TYPE_TEXT_JSON);

request.setEntity(stringEntity);

            HttpResponse httpResponse = buildSSLCloseableHttpClient
                    .execute(request);
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                map.put("data", EntityUtils.toString(httpResponse.getEntity(), "utf-8"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                buildSSLCloseableHttpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return map;

}

public static CloseableHttpClient createSSLClientCookie( CookieStore cookieStore) { SSLContext sslContext; try { sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { // 信任所有 @Override public boolean isTrusted(X509Certificate[] xcs, String string) { return true; } }).build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslContext); if (cookieStore != null) { return HttpClients.custom().setDefaultCookieStore(cookieStore) .setSSLSocketFactory(sslsf).build(); } else { return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } } catch (Exception e) { e.printStackTrace(); } return HttpClients.createDefault(); }

经验分享 程序员 微信小程序 职场和发展