java中httpclient實現digest驗證的請求
阿新 • • 發佈:2019-01-01
[java]
view plain
copy
print?
- package test.util;
- import java.net.URI;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.httpclient.auth.AuthPolicy;
- import org.apache.http.HttpResponse;
- import org.apache.http.auth.AuthScope;
- import org.apache.http.auth.Credentials;
- import org.apache.http.auth.UsernamePasswordCredentials;
- import org.apache.http.client.methods.HttpUriRequest;
- import org.apache.http.impl.auth.DigestSchemeFactory;
- import org.apache.http.impl.client.DefaultHttpClient;
- /**
- * @author Administrator
- *
- */
- publicclass HTTPDigestClient {
- private
- String response = null;
- private DefaultHttpClient httpClient = new DefaultHttpClient();
- /**
- * constructor
- */
- public HTTPDigestClient(String userName, String passWord, String url) {
- try {
- serverURI = new URI(url);
- Credentials creds = new
- passWord);
- httpClient.getCredentialsProvider().setCredentials(
- new AuthScope(serverURI.getHost(), serverURI.getPort), (Credentials) creds);
- httpClient.getParams().setParameter(
- AuthPolicy.AUTH_SCHEME_PRIORITY, Collections.singleton(AuthPolicy.DIGEST));
- httpClient.getAuthSchemes().register(AuthPolicy.DIGEST,
- new DigestSchemeFactory());
- } catch (Exception e) {
- }
- }
- /**
- * send request to server
- *
- * @param httpClient
- * @param httpUriRequest
- * @return response HttpResponse
- */
- public HttpResponse send(HttpUriRequest httpUriRequest) {
- HttpResponse response = null;
- try {
- if (null == httpClient) {
- return response;
- }
- response = httpClient.execute(httpUriRequest);
- } catch (Exception e) {
- }
- return response;
- }
- }
package test.util;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.auth.AuthPolicy;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.auth.DigestSchemeFactory;
import org.apache.http.impl.client.DefaultHttpClient;
/**
* @author Administrator
*
*/
public class HTTPDigestClient {
private URI serverURI = null;
String response = null;
private DefaultHttpClient httpClient = new DefaultHttpClient();
/**
* constructor
*/
public HTTPDigestClient(String userName, String passWord, String url) {
try {
serverURI = new URI(url);
Credentials creds = new UsernamePasswordCredentials(userName,
passWord);
httpClient.getCredentialsProvider().setCredentials(
new AuthScope(serverURI.getHost(), serverURI.getPort), (Credentials) creds);
httpClient.getParams().setParameter(
AuthPolicy.AUTH_SCHEME_PRIORITY, Collections.singleton(AuthPolicy.DIGEST));
httpClient.getAuthSchemes().register(AuthPolicy.DIGEST,
new DigestSchemeFactory());
} catch (Exception e) {
}
}
/**
* send request to server
*
* @param httpClient
* @param httpUriRequest
* @return response HttpResponse
*/
public HttpResponse send(HttpUriRequest httpUriRequest) {
HttpResponse response = null;
try {
if (null == httpClient) {
return response;
}
response = httpClient.execute(httpUriRequest);
} catch (Exception e) {
}
return response;
}
}
伺服器端必須加入域
設定realm 為空或者當前域名 測試成功
使用者名稱 密碼用的是域賬戶
下面為basic驗證方式 ,測試通過
[java] view plain copy print?- package test.util;
- import java.net.URI;
- import java.util.Collections;
- import org.apache.commons.httpclient.auth.AuthPolicy;
- import org.apache.http.HttpResponse;
- import org.apache.http.auth.AuthScope;
- import org.apache.http.auth.Credentials;
- import org.apache.http.auth.UsernamePasswordCredentials;
- import org.apache.http.client.CredentialsProvider;
- import org.apache.http.client.methods.HttpUriRequest;
- import org.apache.http.impl.auth.BasicSchemeFactory;
- import org.apache.http.impl.client.DefaultHttpClient;
- /**
- * @author Administrator
- *
- */
- publicclass HTTPBasicClient {
- private URI serverURI = null;
- String response = null;
- private DefaultHttpClient httpClient = new DefaultHttpClient();
- /**
- * constructor
- *
- */
- public HTTPBasicClient(String userName, String passWord, String url) {
- try {
- serverURI = new URI(url);
- UsernamePasswordCredentials creds = new UsernamePasswordCredentials(
- userName, passWord);
- CredentialsProvider credsProvider = httpClient
- .getCredentialsProvider();
- credsProvider.setCredentials(new AuthScope(serverURI.getHost(),
- serverURI.getPort()), (Credentials) creds);
- httpClient.getParams().setParameter(
- AuthPolicy.AUTH_SCHEME_PRIORITY,
- Collections.singleton(AuthPolicy.BASIC));
- httpClient.getAuthSchemes().register(AuthPolicy.BASIC,
- new BasicSchemeFactory());
- } catch (Exception e) {
- }
- }
- /**
- * send request to server
- *
- * @param httpClient
- * @param httpUriRequest
- * @return response HttpResponse
- */
- public HttpResponse send(HttpUriRequest httpUriRequest) {
- HttpResponse response = null;
- try {
- if (null == httpClient) {
- return response;
- }
- response = httpClient.execute(httpUriRequest);
- } catch (Exception e) {
- }
- return response;
- }
- }