`
yangzc106
  • 浏览: 157684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpClient使用方式

阅读更多

 发一段核心方法:

 

有些注释,可以看注释。

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);
	}
}

 

分享到:
评论

相关推荐

    Asp.Net Core2.1前后使用HttpClient的两种方式

    在.Net Core应用开发中,调用第三方接口也是常有的事情,HttpClient使用人数、使用频率算是最高的一种了,在.Net Core中,HttpClient的使用方式随着版本的升级也发生了一些变化,本次就讲解一下Asp.Net Core2.1前后...

    httpclient方式调用url

    本篇文章将深入探讨如何使用HttpClient方式调用URL,以及相关的知识点。 首先,HttpClient允许我们构建复杂的HTTP请求,包括GET、POST以及其他HTTP方法。使用HttpClient调用URL的基本步骤包括创建HttpClient实例、...

    httpclient3 自动登陆淘宝, 开心网

    由于无法直接访问该链接,我将根据常见的HttpClient使用方式来解释相关知识点。 1. **HttpClient简介**:HttpClient是一个Java库,由Apache软件基金会开发,提供了丰富的HTTP协议操作功能,包括GET、POST、PUT、...

    HttpClient使用教程 事例

    这个教程将深入讲解如何使用HttpClient进行单向认证的设置和应用。在本文中,我们将探讨HttpClient的基本概念、配置、请求执行以及如何处理单向认证的过程。 首先,HttpClient库提供了一套完整的API,允许开发者...

    httpclient post方式发送请求

    本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能...

    使用httpclient方式和RestTemplate方式调用http及https接口

    1. HttpClient方式: Apache HttpClient是一个流行的Java库,提供了一组强大的API来处理HTTP请求和响应。使用HttpClient,你可以创建GET、POST、PUT等各种HTTP方法的请求,并自定义请求头、参数和实体内容。以下是一...

    对于C#(HttpClient)方式网络请求的封装

    标题中的“对于C#(HttpClient)方式网络请求的封装”是指使用C#编程语言,特别是通过HttpClient类来处理HTTP网络请求,并将这个过程进行抽象和封装,以便在多个地方重复使用。HttpClient是.NET Framework和.NET ...

    httpclient请求方式+cookies

    httpclient 请求两种方式,如果有cookie可加上cookies,同步获取返回值

    HttpClient 调用WebService示例

    在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...

    httpclient简单使用

    本教程将基于标题"HTTPClient简单使用"和提供的文件`HttpService`、`HttpClient`来阐述HTTPClient的基本使用方法。 1. **HTTPClient简介** HTTPClient是Apache的 HttpClient库,它为Java开发者提供了全面的HTTP...

    HttpClient使用HttpGet进行json数据传输(所使用的jar.zip)

    注意,虽然HttpGet通常用于获取数据,但如果你的API需要在GET请求中发送JSON数据,可能需要考虑其他方式,如使用HttpPost并利用`Entity`来发送数据。此外,处理网络请求时应考虑到异常处理,以确保程序的健壮性。 ...

    使用httpclient访问servlet

    本篇文章将详细探讨如何使用HttpClient来访问Servlet,并阐述相关的核心知识点。 首先,我们需要理解Servlet的本质。Servlet是一种Java类,它扩展了服务器的功能,用于处理HTTP请求并生成响应。通常,Servlet部署在...

    C#HTTPclient 实例应用

    为了确保高效的资源管理,建议使用`HttpClientFactory`,尤其是对于频繁创建和销毁`HttpClient`的情况,这可以避免过多的TCP连接打开和关闭。 ```csharp using System.Net.Http; using Microsoft.Extensions....

    java 调用webservice使用HttpClient和XFire两种方式

    本文将详细介绍如何使用HttpClient和XFire这两种不同的库来调用Web Service,特别是针对短信接口的调用。 首先,让我们了解Web Service的基本概念。Web Service是一种基于互联网的、平台无关的交互方式,它允许不同...

    使用HttpClient异步请求数据

    // 使用方式 new FetchDataTask().execute(); ``` 在`doInBackground`方法中,我们进行网络请求,而`onPostExecute`则负责在主线程处理结果,更新UI。这样可以避免阻塞UI,提升用户体验。 结合题目中的`Connection...

    Java 使用HttpClient保持SESSION状态

    在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或...在这些框架中,可能会有更高级的方式来管理HTTP请求和SESSION状态,例如使用Spring的`RestTemplate`或`WebClient`。

    使用httpclient模拟表单提交

    本篇文章将深入探讨如何使用HttpClient来模拟表单提交。 表单提交通常是用户在网页上填写信息后点击提交按钮,数据通过HTTP请求发送到服务器的过程。HttpClient为我们提供了模拟这一过程的能力,无论是GET还是POST...

    httpClient调用webservice接口

    ### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....

    【ASP.NET编程知识】.NET CORE HttpClient的使用方法.docx

    .NET CORE HttpClient 的使用方法 .NET CORE 中的 HttpClient 是一个非常重要的组件,它提供了一个强大且灵活的方式来发送 HTTP 请求。然而,在使用 HttpClient 时,我们需要注意一些重要的配置和使用方法,以避免...

Global site tag (gtag.js) - Google Analytics