package com.javaeye.api;
import java.io.IOException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.http.client.ClientProtocolException;
public class TestClientUtils {
public static void main(String[] args) {
String str = null;
try {
str = ClientUtils.getJsonContent("api.iteye.com",
"api/user_favorites/list", "username", "password");
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(str);
JSONObject json1 = null;
JSONObject json = JSONObject.fromObject("{\"a\":" + str + "}");
JSONArray array = json.getJSONArray("a");
for (int i = 0; i < array.size(); i++) {
json1 = JSONObject.fromObject(array.get(i));
System.out.print(json1.get("title"));
System.out.print("\t");
System.out.print(json1.get("url"));
System.out.print("\n");
}
}
}
package com.javaeye.api;
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 {
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);
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);
}
}
}
}
}
分享到:
相关推荐
在这个场景中,我们使用HttpClient来调用JavaEye API来验证用户。JavaEye可能是一个提供用户认证服务的平台,而API则提供了验证用户身份的功能。 以下是一个关于如何使用HttpClient调用JavaEye API的基本步骤: 1....
JavaEye API 的简单封装主要基于 Java 的 HttpClient 库,提供了更方便、易用的接口来执行 HTTP 请求。HttpClient 是一个成熟的 Java 库,用于执行 HTTP 协议的客户端请求,而 JavaEyeClient 则是对这个库进行了一层...
JavaEye的API使用帮助是一个针对JavaEye开发框架的详细指南,旨在帮助开发者更好地理解和应用这个框架。这个压缩包包含了三个文件:一个PDF文档,一个TXT文本文件,以及一个URL链接。接下来,我们将深入探讨JavaEye ...
NULL 博文链接:https://ago520.iteye.com/blog/754087
NULL 博文链接:https://ago520.iteye.com/blog/814571
2. Apache HttpClient库:这个库提供了一套更高级的API,允许更灵活的配置和控制HTTP请求。例如,可以方便地管理Cookie、设置超时、处理重定向等。 二、HTTP请求与响应处理 在JavaEye客户端中,可以看到如何构建...
javaeye被黑 大家看看
JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...
2. **Android SDK**:作为基于Android平台的应用,JavaEye Client SourceCode必然使用了Android SDK,包括Android API的各种类库,例如视图(View)和布局(Layout)系统,以及用于网络通信、数据库操作、文件I/O等...
Android提供了HttpURLConnection、HttpClient等原生API,但现代开发更多倾向于使用第三方库,如OkHttp、Retrofit等,它们提供更便捷的网络请求和响应处理,同时支持异步操作,提升用户体验。 四、数据解析与缓存 ...
#### 二、集成开发环境(IDE)选择 ##### NetBeans Ruby IDE **1. 简介** NetBeans Ruby IDE 是一个强大的集成开发环境,专门为Ruby on Rails (RoR) 开发而设计。它提供了丰富的功能和快捷键,极大地提高了开发...
在现代浏览器中,由于Flash已逐渐被淘汰,可能需要使用其他技术(如clipboard API)来实现相同的功能。 要在WordPress中使用这些文件,你需要将它们上传到合适的目录,例如主题的`js`和`css`文件夹,并在主题的`...
5. **RESTful API**:JavaEye+可能通过RESTful设计原则来构建Web服务接口,以实现松耦合、无状态和统一的交互方式。 6. **Servlet和JSP**:作为Java Web开发的基础,Servlet用于处理HTTP请求,而JSP则用于动态生成...
javaeye的信息提示框代码之css,application.js
开发者可以通过反编译工具查看这些类,了解JavaEye的具体实现逻辑。 `resources.arsc`文件存储了应用的所有资源的引用表,包括字符串、颜色、图像、布局等。在JavaEye中,这个文件可能包含了用户界面的各种元素,...
#### 二、Android中文API合集概述 《Android中文API合集》是由一群热心的Android爱好者组成的翻译组所共同完成的一个项目。这个合集包含了102篇经过精心翻译的API文档,覆盖了Android开发中的各个方面。这些文档不仅...