`

JAVA中使用HTTPclient访问url取得数据

    博客分类:
  • Java
阅读更多
第一次写博客有点小激动呢

最近项目上有个小功能需要调用第三方的http接口取数据,用到了HTTPclient,算是做个笔记吧!
1、使用get方法取得数据
	/**
	 * 根据URL试用get方法取得返回的数据
	 * @param url
	 *        URL地址,参数直接挂在URL后面即可
	 * @return
	 */
	public static String getGetDateByUrl(String url){
		
		String data = null;
		//构造HttpClient的实例  
		HttpClient httpClient = new HttpClient();  
		//创建GET方法的实例  
		GetMethod getMethod = new GetMethod(url); 
		//设置头信息:如果不设置User-Agent可能会报405,导致取不到数据
		getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0");
		//使用系统提供的默认的恢复策略  
		getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());  
		try{
			//开始执行getMethod  
			int statusCode = httpClient.executeMethod(getMethod);
			if (statusCode != HttpStatus.SC_OK) {
				System.err.println("Method failed:" + getMethod.getStatusLine());
			}
			//读取内容
			byte[] responseBody = getMethod.getResponseBody();
			//处理内容
			data = new String(responseBody);
		}catch (HttpException e){
			//发生异常,可能是协议不对或者返回的内容有问题
			System.out.println("Please check your provided http address!");
			data = "";
			e.printStackTrace();
		}catch(IOException e){
			//发生网络异常
			data = "";
			e.printStackTrace();
		}finally{
			//释放连接
			getMethod.releaseConnection();
		}
		return data;
	}


2、使用post方法取得数据
 /**
	 * 根据post方法取得返回数据
	 * @param url
	 *          URL地址
	 * @param array
	 *          需要以post形式提交的参数
	 * @return
	 */
	public static String getPostDateByUrl(String url,Map<String ,String> array){
		String data = null;
		//构造HttpClient的实例  
		HttpClient httpClient = new HttpClient();  
		//创建post方法的实例  
		PostMethod postMethod = new PostMethod(url); 
		//设置头信息
		postMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0");
		postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
		//遍历设置要提交的参数
		Iterator it = array.entrySet().iterator();  
		while (it.hasNext()){
			Map.Entry<String,String> entry =(Map.Entry) it.next();  
			String key = entry.getKey();  
			String value = entry.getValue().trim();  
			postMethod.setParameter(key,value);
		}
		//使用系统提供的默认的恢复策略  
		postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());  
		try{
			//执行postMethod  
			int statusCode = httpClient.executeMethod(postMethod);
			if (statusCode != HttpStatus.SC_OK) {
				System.err.println("Method failed:" + postMethod.getStatusLine());
			}
			//读取内容
			byte[] responseBody = postMethod.getResponseBody();
			//处理内容
			data = new String(responseBody);
		}catch (HttpException e){
			//发生致命的异常,可能是协议不对或者返回的内容有问题
			System.out.println("Please check your provided http address!");
			data = "";
			e.printStackTrace();
		}catch(IOException e){
			//发生网络异常
			data = "";
			e.printStackTrace();
		}finally{
			//释放连接
			postMethod.releaseConnection();
		}
		System.out.println(data);
		return data;
	}

总结到此!
分享到:
评论

相关推荐

    java使用HttpClient通过url下载文件到本地

    在Eclipse中使用HttpClient,首先需要将相关的jar包添加到项目的类路径中。这些jar包通常包括`httpclient`, `httpcore`, `httpmime`等,确保HttpClient库的所有依赖都已包含。 3. **下载文件的基本步骤**: - **...

    java使用HttpClient发送http请求

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...

    Java 使用HttpClient保持SESSION状态

    下面我们将详细探讨如何在Java中使用HttpClient来实现这一目标。 首先,我们需要导入必要的Apache HttpClient库,通常包含以下依赖: ```xml &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient ...

    httpclient方式调用url

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

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    commons-httpclient,java中使用httpclient中使用的扩展工具

    同时,注意HttpClient库已经不再更新,对于新的Java项目,推荐使用现代化的HTTP客户端库,如Apache HttpClient的后继者Apache HTTP Components HttpClient 4.x系列,或者使用Java标准库的`java.net.http.HttpClient`...

    使用httpclient访问servlet

    总之,使用HttpClient访问Servlet能够简化Java应用之间的通信,特别是在分布式系统中。正确理解和应用HttpClient的各种特性和配置,能够帮助我们构建高效、可靠的网络通信方案。在实际开发中,还需要根据具体项目...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    java 中HttpClient传输xml字符串实例详解

    Java中的HttpClient是一个强大的HTTP客户端库,常用于与服务器进行数据交互。在本实例中,我们将讲解如何使用HttpClient来传输XML字符串。首先,我们需要确保引入了正确的依赖,包括Apache HttpClient、HttpMime、...

    JAVA利用HttpClient进行HTTPS接口调用

    在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现HTTPS接口调用。 首先,我们需要理解HTTPS协议。HTTPS是HTTP(超文本传输协议)与SSL/TLS(安全套接层/传输层安全)的结合,它为数据传输提供了加密...

    java 访问 wcf 示例(使用的HttpClient)

    Java访问WCF服务是跨平台...以上就是使用Java HttpClient访问WCF服务的基本知识,实际应用中可能需要根据具体服务接口和需求进行调整。文件"java4Wcf"可能包含完整的示例代码或更详细的步骤,建议结合该文件深入学习。

    JAVA-用HttpClient来模拟浏览器GET,POST.docx

    在上面的示例代码中,我们首先创建了一个HttpClient实例,然后设置了要访问的URL,接着创建了一个GetMethod对象,并执行了GET请求。最后,我们读取了服务器返回的响应结果,并将其输出到控制台。 在下面的章节中,...

    Java HttpClient 全部的jar包

    在Java项目中,使用HttpClient可以实现与Web服务器的高效通信。下面将详细介绍这12个jar包的作用及其在HttpClient中的功能: 1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性...

    使用httpClient访问https+443端口号。

    标题中的“使用httpClient访问https+443端口号”指的是使用Apache HttpClient库来发起HTTPS(安全超文本传输协议)请求,目标服务器的默认端口是443。HTTPS是一种基于SSL/TLS的安全通信协议,用于在客户端和服务器...

    JAVA httpclient jar下载

    httpclient常用封装工具 doGet(String url, Map, String&gt; param) doPost(String url, Map, String&gt; param) doPostJson(String url, String json)

    Android使用HttpClient和HttpsUrlConnection两种方式访问https网站

    在Android中,我们可以使用`AndroidHttpClient`,它是`HttpClient`的一个优化版本,更适合Android平台。 #### 1.1 配置HttpClient访问HTTPS(不验证证书) ```java // 创建HttpClient实例 HttpClient httpClient =...

    Java中访问页面的HttpClient类

    在Java编程中,访问网页内容是一项常见的任务,通常我们使用HttpClient类来实现这一功能。HttpClient是Apache HttpClient库的核心类,它提供了丰富的API用于构建复杂的HTTP客户端应用。这篇博客(原文链接:...

    Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)

    在标题和描述中提到的"Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)",是使用HttpClient库时必须包含的三个关键依赖文件。 首先,`httpclient.jar`是Apache HttpClient的核心库...

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

    在Java开发中,有时我们需要与外部服务进行交互,如发送短信、获取数据等,这时就会用到Web Service。本文将详细介绍如何使用HttpClient和XFire这两种不同的库来调用Web Service,特别是针对短信接口的调用。 首先...

Global site tag (gtag.js) - Google Analytics