System.setProperty(“http.proxySet”, “true”);
System.setProperty("java.net.useSystemProxies”, “true”);
System.setProperty(“http.proxyHost”, “192.168.1.103”);
System.setProperty(“http.proxyPort”, “3128”);
System.setProperty(“http.proxyUser”, “user123”);
System.setProperty(“http.proxyPassword”, “passwD123”);
url = new URL("http://www.google.co.in");
每次使用此代码时,都会抛出IOException异常,该异常表示HTTP
响应代码407。HTTP407表示需要进行代理身份验证。为什么
在设置proxyUser和proxyPassword时会出现此问题。在此处输入图片说明
如果我输入了错误的密码,则会出现http 401,但它始终会给我407,这意味着
我的代码未使用用户名和密码。在上面的代码中,user123是用户名
,passwD123是用于代理身份验证的密码。
http://blog.vinodsingh.com/2008/05/proxy-authentication-in-java.html
感谢Vinod Singh先生,我找到了解决方案。
Java中的代理身份验证
普通的公司网络通过代理服务器提供Internet访问,有时还需要身份验证。可能应用程序会打开
与公司Intranet外部服务器的连接。因此,必须以编程方式进行代理身份验证。幸运的是,Java提供了一种
透明的机制来执行代理身份验证。
创建一个像下面这样的简单类-
import java.net.Authenticator;
class ProxyAuthenticator extends Authenticator {
private String user, password;
public ProxyAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password.toCharArray());
}
}
并在您的代码打开URLConnection-之前放置这些代码行
Authenticator.setDefault(new ProxyAuthenticator("user", "password"));
System.setProperty("http.proxyHost", "proxy host");
System.setProperty("http.proxyPort", "port");
现在,所有呼叫将成功通过代理身份验证。
问题内容: 问题: 如何向OkHTTP添加授权代理。 我知道OkHTTP的生成器确实支持代理,尽管我很难设置一个代理。 我有IP /端口/用户名/密码。 尽管我不知道如何将其转换为client.SetProxy()中可以使用的那些。 这似乎过于复杂,我似乎无法弄清楚。任何帮助,将不胜感激。 问题答案: 试试这个:
问题内容: 假设我试图从使用基本身份验证/基本证书的RESTful API中提取信息,那么在该程序中存储该用户名和密码的最佳方法是什么?现在,它只是以纯文本格式坐在那里。 有什么方法可以做到更注重安全性吗? 问题答案: 在@ Damien.Bell的请求下,以下示例涵盖了第一步和第二步: 一个解决每个保护步骤的完整示例将远远超出我认为对该问题的合理范围,因为它是关于“步骤是什么”而不是“如何应用它
假设我试图从使用基本身份验证/基本证书的RESTful api中提取,那么在我的程序中存储用户名和密码的最佳方式是什么?现在它只是以明文形式存在。 有没有更安全的方法? 谢啦
我正在尝试使用下面的pip install命令,但它失败了,需要代理身份验证。我已经在RHEL7中配置了代理。x服务器。 日志:
我使用Firefox WebDriver在Python 2.7与硒。我的python程序启动火狐浏览器,并在运行程序时访问不同的网站。但是,我需要设置具有身份验证的代理,以便当程序访问任何网站时,它将通过代理服务器访问。 关于SO也有一些类似的问题。但是,没有针对Python的Selenium Firefox WebDriver的特定解决方案。 Python Selenium WebDrive-代
问题内容: 我正在尝试使用urllib.request.urlopen()打开一个网站(我在公司代理后面),但出现错误: 我可以在urllib.request.getproxies()中找到该代理,但是如何指定用于该代理的用户名和密码?我在官方文档中找不到解决方案。 问题答案: