我正在尝试将HTTP POST请求发送到具有HTTPS代理的站点。
我目前正在这样做:
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
HttpPost request = new HttpPost("https://example.com");
HttpHost proxy2 = new HttpHost("proxy ip here", 8080, "https");
RequestConfig config = RequestConfig.custom()
.setProxy(proxy2)
.build();
request.setConfig(config);
String json = "\"" + username + "\"";
StringEntity entity = new StringEntity(json);
request.setEntity(entity);
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
CloseableHttpResponse response = httpclient.execute(request, context);
HttpEntity entityresponse = response.getEntity();
responseString = EntityUtils.toString(entityresponse, "UTF-8");
response.close();
httpclient.close();
但是我得到这个:java.net.SocketException: Connection reset
我也尝试了很多代理和不同的URL,但是仍然存在相同的问题。
如果我在代理主机行中设置了HTTP URL和http
参数,则工作正常,但是我需要HTTPS:/
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
如果要调用https url,则必须将证书安装在jre security / lib文件夹中。
要安装证书,请按照以下步骤操作:
我希望这可以解决您的问题。