簡體   English   中英

我想通過從Java應用程序傳遞憑據來登錄到網頁

[英]I want to login to a web page by passing credentials from java application

我想通過從Java應用程序傳遞憑據來登錄網頁嗎? 我正在使用以下代碼,但出現一些錯誤:

HttpClient client = new HttpClient();
client.getParams().setParameter("User Name", "user");
client.getParams().setParameter("Password", "password");
GetMethod request = new GetMethod("url");

錯誤:信息:沒有憑據可用於NTLM @ 192.168.224.142:7048

我也嘗試了以下代碼:

HttpClient client = new HttpClient();
        client.getState().setCredentials(AuthScope.ANY, new NTCredentials("user", "password", "ip:port", "http"));
        GetMethod request = new GetMethod("url");

錯誤:INFO:使用NTLM進行身份驗證失敗

通過從Java應用程序傳遞憑據來建議登錄網頁的方法?

您正在將用戶憑據作為GET請求參數傳遞。 該網站需要基於NTLM的身份驗證(用戶名和密碼不會發送到服務器)。

使用org.apache.http.auth.NTCredentials存儲您的用戶名和密碼。

NTCredentials userCredentials = new NTCredentials(userName, password,
                                  System.getProperty("COMPUTERNAME"), domain);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST,
                                       AuthScope.ANY_PORT), userCredentials);
HttpClientContext httpClientContext = HttpClientContext.create();
httpClientContext.setCredentialsProvider(credentialsProvider);
HttpClient httpClient = HttpClientBuilder.create().
                      setDefaultCredentialsProvider(credentialsProvider).build();

可以根據您的需要隨意修改AuthScope

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM