我正在测试Java的DocuSign API客户端。
问题在于测试环境和生产环境都在需要身份验证(用户名+密码,而不仅仅是主机+端口)的公司代理后面。
但是我看不到配置DocuSign ApiClient的方法。
我只能设置http.proxyHost
和http.proxyPort
,但不能设置http.proxyUser
和http.proxyPassword
。
System.getProperties().put("http.proxyHost", host);
System.getProperties().put("https.proxyHost", host);
System.getProperties().put("http.proxyPort", String.valueOf(port));
System.getProperties().put("https.proxyPort", String.valueOf(port));
System.getProperties().put("http.proxyUser", user);
System.getProperties().put("http.proxyPassword", password);
Authenticator.setDefault(
new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
if (getRequestorType() == Authenticator.RequestorType.PROXY) {
System.out.println(getRequestingHost() + ":" + getRequestingPort() + " -> " + getRequestingURL());
return new PasswordAuthentication(user, password.toCharArray());
}
return null;
}
}
);
设置Authenticator.setDefault()
可以使用默认的Java http客户端,但是在使用DocuSign ApiClient时不会显示任何效果。
答案 0 :(得分:0)
是的,您可以使用:
对于HTTPS(推荐):https.proxyHost,https.proxyPort,https.proxyUser和https.proxyPassword
对于HTTP:http.proxyHost,http.proxyPort,http.proxyUser和http.proxyPassword
它是在2月发布的客户端版本2.9.0中添加的,因此,如果您拥有该版本或更高版本,那就应该不错
答案 1 :(得分:0)
我已经从2.8.0更新到2.9.0。
我已经对其进行了测试,但是目前我仍然遇到相同的异常com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
我按照上一个答案的建议使用了此代码:
System.getProperties().put("http.proxyHost", host);
System.getProperties().put("https.proxyHost", host);
System.getProperties().put("http.proxyPort", String.valueOf(port));
System.getProperties().put("https.proxyPort", String.valueOf(port));
System.getProperties().put("http.proxyUser", user);
System.getProperties().put("https.proxyUser", user);
System.getProperties().put("http.proxyPassword", password);
System.getProperties().put("https.proxyPassword", password);
问题是http.proxyUser
和http.proxyPassword
未被DocuSign API客户端识别。