更新时间:2022-09-18 18:07:45
虽然摘要认证的安全性比BASIC认证提高了不少,但是从接口调用上来看,并不比BASIC认证复杂,而且Realm和Scheme参数都可以为空,这时候就和BASIC认证的调用方式一模一样了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.net.URI;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class DigestTest {
public static void main(String[] args) throws Exception {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials( new AuthScope( "10.0.0.90" , 8080 , "favourite digest realm" , AuthScope.ANY_SCHEME),
new UsernamePasswordCredentials( "admin" , "password" ));
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
HttpUriRequest login = RequestBuilder.post()
.setUri( new URI( "http://10.0.0.100:8080/hibaby/getBabiesByGender" ))
.addParameter( "appKey" , "BEST" )
.addParameter( "gender" , "boy" ).build();
CloseableHttpResponse response = httpclient.execute(login);
System.out.println( "响应状态:" + response.getStatusLine());
String result = EntityUtils.toString(response.getEntity(), "UTF-8" );
System.out.println( "Result: " + result);
}
} |