ope*_*sas 5 java authentication ntlm kerberos httpurlconnection
我需要使用Java来使用休息Web服务,并传递域用户帐户的凭据.
现在我用经典的asp做它
set xmlHttp = server.createObject( "msxml2.serverxmlhttp" )
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing
Run Code Online (Sandbox Code Playgroud)
和asp.net
HttpWebRequest request = (HttpWebRequest) WebRequest.Create( url );
request.Credentials = new NetworkCredential(user, password, domain);
request.Method = WebRequestMethods.Http.Get
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader outStream = new StreamReader( response.GetResponseStream(), Encoding.UTF8) ;
output = outStream.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
我怎样才能用java实现这个目标?考虑到我没有使用当前登录用户的凭据,我正在指定域帐户(我有密码)
请告诉我它与经典的asp和asp.net一样简单....
根据此页面,您可以使用内置的 JRE 类,但需要注意的是早期版本的 Java 只能在 Windows 计算机上执行此操作。
但是,如果您愿意接受第 3 方依赖,IMO Apache Commons HttpClient 3.x是您的最佳选择。 这是使用身份验证的文档,包括 NTLM。一般来说,HttpClient 是一个功能更丰富的库。
HttpClient的最新版本是4.0,但是显然这个版本不支持NTLM这个版本需要一点额外的工作。
这是我认为代码的样子,尽管我还没有尝试过:
HttpClient httpClient = new HttpClient();
httpClient.getState().setCredentials(AuthScope.ANY, new NTCredentials(user, password, hostPortionOfURL, domain));
GetMethod request = new GetMethod(url);
BufferedReader reader = new InputStreamReader(request.getResponseBodyAsStream());
Run Code Online (Sandbox Code Playgroud)
祝你好运。
| 归档时间: |
|
| 查看次数: |
17985 次 |
| 最近记录: |