新手,第一次接触,很懵,待解救。对于认证这一块现在很混乱。现在后台认证是用的摘要式,我这边怎么使用摘要式来验证呢?
我搜了一下资料,我没有自己实践过,还需要你亲自验证一下才好
基本思路:
--- 使用HttpClient(DefaultHttpClient)类连接服务器并获取数据
DefualtHttpClient 类:创建client对象
excuete(HttpGet)方法:执行连接和获取,参数是一个HttpGet对象
HttpGet类:基于url创建HttpGet对象
HttpResponse类: execute的返回值
getEntiry().getContent() 方法:获取数据流
--- 该client访问需要认证的资源需要一个认证方法,就需要设置一个认证提供者
client的 setCredentialsProvider(bcp) 方法:设置认证提供者
BasicCredentialsProvider 类:创建认证提供者实例
setCredentials 方法:设置AuthScope和UsernamePasswordCredentials类
AuthScope类:认证范围,基于主机,端口和领域构建
UsernamePasswordCredentials:基于用户名和口令的证书,基于用户名和口令构建
Java code:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
// 1. 获取并设置url地址,一个字符串变量,一个URL对象 String urlStr ="http://<host>:<port>/data.json"; URL url= new URL(urlStr);
// 2. 创建一个密码证书,(UsernamePasswordCredentials类) String username="foo"; String password="bar"; UsernamePasswordCredentials upc = new UsernamePasswordCredentials(username, password);
// 3. 设置认证范围 (AuthScore类) String strRealm = "<mydomain>"; String strHost = url.getHost(); int iPort = url.getPort(); AuthScope as = new AuthScope(strHost, iPort, strRealm);
// 4. 创建认证提供者(BasicCredentials类) ,基于as和upc BasicCredentialsProvider bcp=new BasicCredentialsProvider(); bcp.setCredentials(as, upc);
// 5. 创建Http客户端(DefaultHttpClient类) DefaultHttpClient client=new DefaultHttpClient();
// 6. 为此客户端设置认证提供者 client.setCredentialsProvider(bcp);
// 7. 创建一个get 方法(HttpGet类),基于所访问的url地址 HttpGet hg= new HttpGet(urlStr);
// 8. 执行get方法并返回 response HttpResponse hr = client.execute(hg);
// 9. 从response中取回数据,使用InputStreamReader读取Response的Entity: String line=null; StringBuilder builder = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader(hr.getEntity().getContent() )); while((line = reader.readLine()) != null) builder.append(line); strContent=builder.toString();
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。