java 使用 httpclient 调用 javaeyeapi
------------------------------------------------------------
package com.javaeye.client;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpException;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScheme;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.AuthState;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
public class ClientUtils {
/**
*
* @param hostUrl 要请求的host name 如:http://api.iteye.com/api/twitters/list -> api.iteye.com
* @param getUrl 要请求的get url 如:http://api.iteye.com/api/twitters/list -> api/twitters/list
* @param userName username
* @param password password
* @return javaeye api 返回的son字符串
* @throws IOException
* @throws ClientProtocolException
*/
public static String getJsonContent(String hostUrl,String getUrl,String userName,String password) throws ClientProtocolException, IOException
{
String jsonStr="";
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(hostUrl, 80),
new UsernamePasswordCredentials(userName, password));
BasicHttpContext localcontext = new BasicHttpContext();
BasicScheme basicAuth = new BasicScheme();
localcontext.setAttribute("preemptive-auth", basicAuth);
httpclient.addRequestInterceptor((HttpRequestInterceptor) new PreemptiveAuth(), 0);
HttpHost targetHost = new HttpHost(hostUrl);
HttpGet httpget = new HttpGet("/" + getUrl);
HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
HttpEntity entity = response.getEntity();
if (entity != null) {
jsonStr = EntityUtils.toString(entity);
//System.out.println(jsonStr);
entity.consumeContent();
}
httpclient.getConnectionManager().shutdown();
return jsonStr;
}
static class PreemptiveAuth implements HttpRequestInterceptor {
public void process(
final HttpRequest request,
final HttpContext context) throws HttpException, IOException {
AuthState authState = (AuthState) context.getAttribute(
ClientContext.TARGET_AUTH_STATE);
// If no auth scheme avaialble yet, try to initialize it preemptively
if (authState.getAuthScheme() == null) {
AuthScheme authScheme = (AuthScheme) context.getAttribute(
"preemptive-auth");
CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
ClientContext.CREDS_PROVIDER);
HttpHost targetHost = (HttpHost) context.getAttribute(
ExecutionContext.HTTP_TARGET_HOST);
if (authScheme != null) {
Credentials creds = credsProvider.getCredentials(
new AuthScope(
targetHost.getHostName(),
targetHost.getPort()));
if (creds == null) {
throw new HttpException("No credentials for preemptive authentication");
}
authState.setAuthScheme(authScheme);
authState.setCredentials(creds);
}
}
}
}
}
/******************************************************************/
test
package com.javaeye.client;
import java.io.IOException;
import org.apache.http.client.ClientProtocolException;
public class TestClientUtils {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str=null;
try {
str = ClientUtils.getJsonContent("api.iteye.com", "api/twitters/list", "msnvip", "×××××");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
}
}
我还是抛砖;请有时间的同学继续深度挖掘;
附件一:eclipse中 简单封装的源代码
附件二:httpclient4.02
分享到:
相关推荐
在这个场景中,我们使用HttpClient来调用JavaEye API来验证用户。JavaEye可能是一个提供用户认证服务的平台,而API则提供了验证用户身份的功能。 以下是一个关于如何使用HttpClient调用JavaEye API的基本步骤: 1....
JavaEye API是为Java开发者设计的一套接口,提供了丰富的功能,包括但不限于数据库操作、缓存管理、安全管理、视图渲染等。这些API简化了开发流程,提高了开发效率,并且通常具有良好的可扩展性和灵活性。 2. **...
JavaEye+技术架构,讲述java框架的应用
在Java编程语言中,函数API(Application Programming Interface)是一组预先定义的方法,允许开发者执行特定任务,如数据处理、输入/输出操作等。本篇文章将深入探讨Java中一些常用的函数API,尤其是那些在日常开发...
NULL 博文链接:https://ago520.iteye.com/blog/754087
- **JDK 5.0 API**:官方中文版,帮助开发者理解和使用Java 5.0的类库和接口。 - **JDK 1.6 API**:CHM格式的中文版,适用于Java 1.6版本。 4. **Java源码下载**: - **源码爱好者-JAVA专区**:提供各种Java项目...
5. Effective Java Second Edition中文版:该书是Java编程的经典之作,中文版的发布让更多的中国开发者能学习到最佳实践。 6. 国内开源工作流Fire Workflow:Fire Workflow是中国本土的开源工作流引擎,它的出现...
JavaEye客户端是一款基于Java开发的开源软件,专为学习和理解客户端编程技术而设计,尤其适合初学者。这个客户端代码库包含了许多与网络通信相关的功能,主要集中在HTTP协议的使用和数据解析上。通过深入研究JavaEye...
使用 Eclipse 平台进行调试 - Java - JavaEye论坛
Java_Excel_API_jxl是用于处理Excel文件的一个流行库,它允许开发者以编程方式创建、读取和修改Excel文件。本篇文章将深入探讨如何使用jxl API进行Java与Excel的交互,并提供jxl.jar的下载信息。 一、jxl简介 jxl是...
2. `smart-upload.jar`:SmartUpload是另一个流行的文件上传工具,它提供了一套完整的API,使得文件上传操作变得简单。SmartUpload支持多文件同时上传,能处理文件大小和类型验证,还有错误处理机制。开发者可以通过...
### Java基础知识总结(超级经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人发起的Oak项目,最初目标是为了控制嵌入式设备,如有线电视交换盒和个人数字助理(PDA)。...
Java语言发展的历史中,Java的版本从Java 1.0开始,经历了Java 1.1、Java 1.2、Java 1.3、Java 1.4、Java 5、Java 6、Java 7、Java 8、Java 9等等,每个新版本的发布都带来了新的特性和改进。例如,Java 5版本中引入...
JavaEye曾是中国最大的Java技术社区之一,虽然目前可能已不活跃,但其存档的大量技术文章和讨论仍具有很高的参考价值。对于希望了解过去Java技术趋势和发展历史的开发者来说,这是一个不可多得的资源。 ### 9. Open...
### Android中文API合集知识点概览 #### 一、引言 随着移动互联网的发展,Android作为全球最大的移动操作系统之一,在开发者社区中占据了重要的地位。为了帮助开发者更好地理解和使用Android的各种功能,Google提供...
javaeye被黑 大家看看
---Java版山寨星际 做了一大堆J2EE WEB应用之后,闲来无事决定研究一下桌面应用程序开发。 想了一下干脆做个Java版的星际,研究的对象就是星际的JS山寨版-JS星际。看了几下,当机立断决定山寨之。。。。 后来经过...