发一段核心方法:
有些注释,可以看注释。
package org.search.core.http;
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.utils.stream.StreamUtils;
/**
* Get方式获得数据
* @author Administrator
*
*/
public class HttpFetcher {
/**
* 以GET方式获得数据
* @param siteId
* @param url
* @return
*/
public static String fetcher_Get(String siteId, String url){
try {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
CookieStore cookies = CookiesStore.getInstance().getCookies(siteId);
if(cookies != null)//添加Cookies
client.setCookieStore(cookies);
HttpResponse resp = client.execute(get);
int status = resp.getStatusLine().getStatusCode();
/**返回的状态码以30*开头,需要服务器继续跳转*/
if(status == HttpStatus. SC_MOVED_TEMPORARILY ||
status == HttpStatus.SC_MOVED_PERMANENTLY||
status == HttpStatus.SC_SEE_OTHER||
status == HttpStatus.SC_TEMPORARY_REDIRECT){
Header[] header = resp.getHeaders("location");
if(header.length >0){
String location = header[0].getValue();
if(location == null || "".equalsIgnoreCase(location)){
location = "/";
}
fetcher_Get(siteId, location);
}
}else if(status == HttpStatus.SC_OK){
//更新Cookies
CookiesStore.getInstance().storeCookies(siteId, client.getCookieStore());
return StreamUtils.converStreamToStr(resp.getEntity().getContent(), true);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
String content =
HttpFetcher.fetcher_Get("baidu",
"http://www.baidu.com/s?bs=httpclient+%CF%C2%D4%D8&f=8&wd=httpclient+");
System.out.println(content);
}
}
分享到:
相关推荐
在.Net Core应用开发中,调用第三方接口也是常有的事情,HttpClient使用人数、使用频率算是最高的一种了,在.Net Core中,HttpClient的使用方式随着版本的升级也发生了一些变化,本次就讲解一下Asp.Net Core2.1前后...
本篇文章将深入探讨如何使用HttpClient方式调用URL,以及相关的知识点。 首先,HttpClient允许我们构建复杂的HTTP请求,包括GET、POST以及其他HTTP方法。使用HttpClient调用URL的基本步骤包括创建HttpClient实例、...
由于无法直接访问该链接,我将根据常见的HttpClient使用方式来解释相关知识点。 1. **HttpClient简介**:HttpClient是一个Java库,由Apache软件基金会开发,提供了丰富的HTTP协议操作功能,包括GET、POST、PUT、...
这个教程将深入讲解如何使用HttpClient进行单向认证的设置和应用。在本文中,我们将探讨HttpClient的基本概念、配置、请求执行以及如何处理单向认证的过程。 首先,HttpClient库提供了一套完整的API,允许开发者...
本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能...
1. HttpClient方式: Apache HttpClient是一个流行的Java库,提供了一组强大的API来处理HTTP请求和响应。使用HttpClient,你可以创建GET、POST、PUT等各种HTTP方法的请求,并自定义请求头、参数和实体内容。以下是一...
标题中的“对于C#(HttpClient)方式网络请求的封装”是指使用C#编程语言,特别是通过HttpClient类来处理HTTP网络请求,并将这个过程进行抽象和封装,以便在多个地方重复使用。HttpClient是.NET Framework和.NET ...
httpclient 请求两种方式,如果有cookie可加上cookies,同步获取返回值
在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...
本教程将基于标题"HTTPClient简单使用"和提供的文件`HttpService`、`HttpClient`来阐述HTTPClient的基本使用方法。 1. **HTTPClient简介** HTTPClient是Apache的 HttpClient库,它为Java开发者提供了全面的HTTP...
注意,虽然HttpGet通常用于获取数据,但如果你的API需要在GET请求中发送JSON数据,可能需要考虑其他方式,如使用HttpPost并利用`Entity`来发送数据。此外,处理网络请求时应考虑到异常处理,以确保程序的健壮性。 ...
本篇文章将详细探讨如何使用HttpClient来访问Servlet,并阐述相关的核心知识点。 首先,我们需要理解Servlet的本质。Servlet是一种Java类,它扩展了服务器的功能,用于处理HTTP请求并生成响应。通常,Servlet部署在...
为了确保高效的资源管理,建议使用`HttpClientFactory`,尤其是对于频繁创建和销毁`HttpClient`的情况,这可以避免过多的TCP连接打开和关闭。 ```csharp using System.Net.Http; using Microsoft.Extensions....
本文将详细介绍如何使用HttpClient和XFire这两种不同的库来调用Web Service,特别是针对短信接口的调用。 首先,让我们了解Web Service的基本概念。Web Service是一种基于互联网的、平台无关的交互方式,它允许不同...
// 使用方式 new FetchDataTask().execute(); ``` 在`doInBackground`方法中,我们进行网络请求,而`onPostExecute`则负责在主线程处理结果,更新UI。这样可以避免阻塞UI,提升用户体验。 结合题目中的`Connection...
在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或...在这些框架中,可能会有更高级的方式来管理HTTP请求和SESSION状态,例如使用Spring的`RestTemplate`或`WebClient`。
本篇文章将深入探讨如何使用HttpClient来模拟表单提交。 表单提交通常是用户在网页上填写信息后点击提交按钮,数据通过HTTP请求发送到服务器的过程。HttpClient为我们提供了模拟这一过程的能力,无论是GET还是POST...
### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
.NET CORE HttpClient 的使用方法 .NET CORE 中的 HttpClient 是一个非常重要的组件,它提供了一个强大且灵活的方式来发送 HTTP 请求。然而,在使用 HttpClient 时,我们需要注意一些重要的配置和使用方法,以避免...