Mar*_*man 14 java httpurlconnection authenticator
我正在构建一个与使用基本身份验证的REST接口对话的Eclipse插件.当身份验证失败时,我想弹出我的插件的设置对话框并重试.通常我可以使用静态Authenticator.setDefault()为所有人设置一个身份验证器HttpURLConnection,但是因为我正在编写一个插件,所以我不想覆盖Eclipse的默认值Authenticator(org.eclipse.ui.internal.net.auth);
我想Authenticator在加载之前设置我的自定义并在之后放回Eclipse的默认值,但我想这将导致多线程的种类问题,所以我很快就失去了这个概念.
Google搜索会产生各种结果,基本上告诉我这是不可能的:
Java URLConnection API应该有一个setAuthenticator(Authenticator)方法,以便在需要身份验证的多线程上下文中更容易地使用此类.
如果应用程序包含很少的第三方插件,并且每个插件都使用自己的Authenticator,我们应该做什么?每次调用"Authenticator.setDefault()"方法都会重写以前定义的Authenticator ...
是否有任何不同的方法可以帮助我克服这个问题?
小智 9
如果无法使用HttpURLConnection,我建议使用Apache 的httpclient库.
一个简单的例子:
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("test","test"));
GetMethod getMethod = new GetMethod("http://www.example.com/mylogin");
client.executeMethod(getMethod);
System.out.println(getMethod.getResponseBodyAsString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5558 次 |
| 最近记录: |