![](/img/trans.png)
[英]com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect in Spring Boot
[英]com.sun.jersey.api.client.ClientHandlerException: java.net.SocketException: Connection reset
我正在嘗試從代碼進行PUT請求調用。 我已經使用了如下的WebResource Class對象:
final Client client = Client.create();
final WebResource webResource = client.resource(API_URL);
client.setConnectTimeout(Integer.valueOf(connectionTimeout));
client.setReadTimeout(Integer.valueOf(readTimeout));
client.addFilter(new HTTPBasicAuthFilter(apiUsername, apiPassword));
webResource.type(MediaType.APPLICATION_JSON);
webResource.accept(MediaType.APPLICATION_JSON);
webResource.header("Content-Length",
String.valueOf(jsonInString.getBytes(Charset.forName("UTF-8")).length));
final ClientResponse response = webResource.put(ClientResponse.class,
jsonInString);
這里所有的變量connectionTimeout,readTimeout,apiUsername,apiPassword,API_URL都具有正確的值。
從最后一行開始,它探討SocketException為com.sun.jersey.api.client.ClientHandlerException:java.net.SocketException:連接重置Exception被捕獲在ClientHandlerException catch塊中。
但是,當我嘗試使用Postman Rest Client的其他輸入來訪問API_URL時,我會收到成功的響應。
誰能幫我理解為什么它不能通過代碼工作?
使用JRE 7作為運行時環境。 並按如下所示創建您的客戶並使用。 它將解決您的問題。
package com.myoffice.util;
import java.security.SecureRandom;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.config.DefaultClientConfig;
public class ClientHelper {
enter code here
private static Client client = null;
static{
SSLContext ctx = null;
try {
//Protocol used is TLSv1.2. You may need other ..check target URL required Protocol
ctx = SSLContext.getInstance("TLSv1.2"));
ctx.init(null, null, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
client= Client.create(new DefaultClientConfig());
} catch (Exception e) {
logger.error("Exception while creating SSLContext", e);
}
}
public static Client getClient(){
return client;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.