如何在 Android 应用程序中为 Http 请求使用 auth-required 代理?
How to use auth-required proxy for Http request in Android app?
我正在使用以下代码发送 post 请求。
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyAddr, proxyPort));
URLConnection urlConnection = url.openConnection(proxy);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
...
这里我可以设置代理服务器地址和端口。但是我想知道如何在这里添加代理用户名和密码。
我读了一些 post 关于通过代理调用 http 请求的文章,但没有人在谈论代理身份验证。
希望得到大家的帮助。
PS:
有些人建议使用来自 here
的代码
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("user",
"password".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
但这根本不起作用。
终于想通了
向请求添加授权 Header。
String credential = Credentials.basic(proxyUsername, proxyPassword);
urlConnection.addRequestProperty("Proxy-Authorization", credential);
我正在使用以下代码发送 post 请求。
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyAddr, proxyPort));
URLConnection urlConnection = url.openConnection(proxy);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
...
这里我可以设置代理服务器地址和端口。但是我想知道如何在这里添加代理用户名和密码。
我读了一些 post 关于通过代理调用 http 请求的文章,但没有人在谈论代理身份验证。
希望得到大家的帮助。
PS:
有些人建议使用来自 here
的代码Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("user",
"password".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
但这根本不起作用。
终于想通了
向请求添加授权 Header。
String credential = Credentials.basic(proxyUsername, proxyPassword);
urlConnection.addRequestProperty("Proxy-Authorization", credential);