`
xiaoZ5919
  • 浏览: 404844 次
  • 性别: Icon_minigender_1
  • 来自: 安平人@北京
博客专栏
Group-logo
Netty学习笔记
浏览量:73198
社区版块
存档分类
最新评论

Javaeye API的Http basic验证

阅读更多

   看到fins大牛写的JE talker以后,很有冲动自己也来写一下。我的UI设计还很差,还是先实现命令行的吧!

   我是采用HttpClient模拟get请求来获取数据,再用jsonlib解析数据。

   开始以为不难实现,不料开始就给我来了一个下马威!Http验证通不过,java eye api 验证采用的是HTTP Basic  Access Authentication,最常用也是最简单的http验证。通过wiki查看了一下原来就是把"username:password"经过Base64加密后,放在header中。当服务器接受请求后,再利用Base64Decode进行验证,不成功则返回httpcode为401。开始我怀疑是不是httpclient采用是不是basic验证。通过查看文档以后,httpclient默认优先采用basic验证。javaeye采用的是basic验证,http优先使用的也是basic验证,而程序死活儿不能通过验证,太奇怪了!

http://ssword.yo2.cn/2009/01/29/ruby%E4%BD%BF%E7%94%A8open-uri%E5%81%9Ahttp-basic%E9%AA%8C%E8%AF%81/中看到ruby的basic验证

   

require 'open-uri'
require 'base64'
f = open(url,"Authorization"=>"Basic #{Base64.b64encode("myaccount:mypassword")}")
puts f.read

 

原来的 写道
我自己试了一把,成功通过验证。借鉴网友的思路我把httpclient的basic验证也采用自己用Base64编码后方法放在header中还是通不过,后来发现原来apache的Base64算法和ruby的BASE64模块提供的算法不同,生成的串不同。

我对Base64编码方式不了解,恳请熟悉的帮忙分析一下

    首先向大家道个谦:

    java和ruby的BASE64编码算法得到的结果是一样的

    现在的问题是这样的:

   

  DefaultHttpClient httpclient = new DefaultHttpClient();
        httpclient.getCredentialsProvider().setCredentials(
        		AuthScope.ANY, 
                new UsernamePasswordCredentials("user", "password"));
//        CredentialsProvider provider = new BasicCredentialsProvider();
//        provider.setCredentials(new AuthScope("http://api.iteye.com/api/twitters/replies",80), new UsernamePasswordCredentials("user:password"));
   
       
        HttpGet httpget = new HttpGet("http://api.iteye.com/api/twitters/replies");

 

这样是通不过验证的

     提示:

     警告: Authentication error: Unable to respond to any of these challenges: {}
----------------------------------------
HTTP/1.1 401 Unauthorized
Response content length: 15

采用httpclient3

client.getState().setCredentials(
               AuthScope.ANY,
                new UsernamePasswordCredentials("user", "password")
            );

 

也通不过  提示:

 

<div style="padding:10px 10px">
        <p>您可能使用了网络爬虫抓取JavaEye网站页面!</p>
        <p>JavaEye网站不允许您使用网络爬虫对JavaEye进行恶意的网页抓取,请您立刻停止该抓取行为!</p>
        <p>如果您的网络爬虫不属于恶意抓取行为,希望JavaEye网站允许你进行网页抓取,请和JavaEye管理员联系,取得授权: webmaster AT javaeye DOT com</p>
        <p>如果您确实使用浏览器访问,但是被错误的识别为网络爬虫,希望将您浏览器发送的“User Agent”信息告知我们,帮助我们解决错误: webmaster AT javaeye DOT com</p>
      </div>

 只有当把验证串放在header中才能通过

   我对httpclient的验证了解不多,恳请高手帮我分析一下

分享到:
评论
3 楼 VcStrong 2013-07-24  
解决了吗?求大神辅导。验证不通过,该怎么改,难道把用户名和密码也用addheader()添加到header中吗
2 楼 xiaoZ5919 2009-03-06  
QuakeWang 写道

httpclient basic 认证的代码:http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/BasicAuthenticationExample.java?view=markup


恩 这段代码 我以前看过

首先向大家道个歉
不是Base64算法的问题 
java和ruby获取的编码串是一样的

相关推荐

    httpClient调用javaeye API验证用户

    3. **构建HttpGet请求**:使用`HttpGet`类创建一个GET请求,设置目标URL为JavaEye API的验证接口。例如: ```java HttpGet httpGet = new HttpGet("http://api.javaeye.com/user/validate"); ``` 4. **添加请求...

    JavaEye的API使用帮助.rar

    JavaEye的API使用帮助是一个针对JavaEye开发框架的详细指南,旨在帮助开发者更好地理解和应用这个框架。这个压缩包包含了三个文件:一个PDF文档,一个TXT文本文件,以及一个URL链接。接下来,我们将深入探讨JavaEye ...

    javaeye api [java httpclient版] 简单封装

    JavaEye API 的简单封装主要基于 Java 的 HttpClient 库,提供了更方便、易用的接口来执行 HTTP 请求。HttpClient 是一个成熟的 Java 库,用于执行 HTTP 协议的客户端请求,而 JavaEyeClient 则是对这个库进行了一层...

    javaeye被黑

    javaeye被黑 大家看看

    基于JavaEye-API实现的Gerry-聊天QQ版v1.0 (全)

    NULL 博文链接:https://ago520.iteye.com/blog/754087

    javaeye热点阅读

    JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...

    JavaEye+技术架构

    JavaEye+技术架构,讲述java框架的应用

    JavaEye3.0开发手记

    - **网址**:http://www.railsbrain.com/api/rails-1.2.3/doc/index.html - **特点**:提供了详尽的Rails文档,便于开发者查询和学习。 #### 六、调试器 虽然Ruby是一种动态语言,但它同样支持高效的调试功能。...

    javaeye的信息提示框代码之js

    javaeye的信息提示框代码之css,application.js

    Android 中文API 合集(102 篇)

    ### Android中文API合集知识点概览 #### 一、引言 随着移动互联网的发展,Android作为全球最大的移动操作系统之一,在开发者社区中占据了重要的地位。为了帮助开发者更好地理解和使用Android的各种功能,Google提供...

    JavaEye Client SourceCode

    5. **网络通信**:许多应用需要与服务器进行数据交换,JavaEye客户端可能使用了HTTP/HTTPS请求,可能通过Android的HttpURLConnection或者第三方库如OkHttp、Retrofit等实现。此外,可能涉及到JSON或XML数据解析,如...

    javaEye客户端

    JavaEye客户端代码中,开发者可以了解到如何使用Java的HttpURLConnection或者Apache HttpClient库来创建HTTP请求,设置请求头,指定HTTP方法(GET、POST等),以及处理响应状态码和响应体。 1. HttpURLConnection...

    基于JavaEye-API实现的Gerry-聊天Dos版v1.0-lib库

    NULL 博文链接:https://ago520.iteye.com/blog/814571

    JavaEye新闻月刊_-_2009年3月_-_总第13期

    JavaEye新闻月刊2009年3月第13期内容涉及了当时软件开发领域内的一系列重要话题,包括IBM拟收购Sun Microsystems公司的新闻报道、Java社区对此的看法以及各种编程语言、开发工具和技术的新动态。 首先,新闻月刊...

    好久没有来JavaEye了,再回来看看老朋友

    这类工具通常会提供详细的使用指南和API参考,帮助开发者理解和使用验证功能。 结合以上信息,我们可以假设这篇博客可能讨论了以下几点: 1. **JavaEye社区回顾**:作者可能会分享自己在JavaEye社区的经历,讲述...

    javaeye论坛小测试答案

    javaeye 论坛小测试 javaeye论坛小测试答案 javaeye论坛测试答案 这下你们就省事了。

Global site tag (gtag.js) - Google Analytics