`

httpclient请求

阅读更多

之前很多次用到过httpclient,尤其是在做接口对接的时候,今天在做接口对接的时候,发现了两个问题:1.HttpClient 对象的executeMethod 方法里面的参数是PostMethod 对象,执行这行代码的时候,有些情况下,执行到这段代码的时候所花费的时间比较长。

2.PostMethod 对象的getResponseBodyAsString 返回值是string的时候,当返回值过大的时候会给你警告:

警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.

所以可以按警告的要求将采用getResponseBodyAsStream 方法来获取返回值,具体如下:

	BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));  
		StringBuffer stringBuffer = new StringBuffer();  
		String str = "";  
		while((str = reader.readLine())!=null){  
		    stringBuffer.append(str);  
		}  
		String ts = stringBuffer.toString();

 return ts。结束.

但是对于第一个问题我在网上找了好多资料,说是有的时候PostMethod 对象的值过大,导致client.executeMethod(post);这段代码执行时间过长,但是我在debug的过程中发现,其实post的大小都是差不多的,都是传了一个值,所以我现在还在想到底是什么原因,有知道的大神可以在这里分享下,大家一起来交流。

 

  /**
	 * 发送http请求,以post方式
	 * @param url
	 * @return
	 * @throws IOException
	 * @throws HttpException
	 */
	public static String doPost(String url,String name,String responeJsonStr) throws IOException,HttpException{
		
		//强制设置可信任证书
		Protocol myhttps = new Protocol("https", new MySSLProtocolSocketFactory(), 443);   
		Protocol.registerProtocol("https", myhttps);
		
		HttpClient client = new HttpClient();
		PostMethod post = new PostMethod(url);
		post.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
		if(StrUtil.isNotNull(name)){
			NameValuePair[] param = {new NameValuePair(name,responeJsonStr)} ;
			post.setRequestBody(param);
		}else{
			post.setRequestBody(responeJsonStr);
		}
		post.getParams().setContentCharset("utf-8");
		//发送http请求
		String respStr = "";
		
		client.executeMethod(post);
		respStr = post.getResponseBodyAsString();
		
		return respStr;
	}

 

分享到:
评论

相关推荐

    httpclient请求方式+cookies

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

    JAVA发送HttpClient请求及接收请求完整代码实例

    在本实例中,我们将深入探讨如何使用HttpClient来发送请求以及处理返回的数据。 首先,让我们了解HttpClient的基本用法。Apache HttpClient库提供了一个`CloseableHttpClient`接口,它是执行HTTP请求的主要入口点。...

    httpclient请求oauth服务器中的token

    以上是使用HttpClient请求OAuth服务器中token的基本流程。实际应用中,可能需要根据具体授权服务器的要求和客户端类型进行调整。在文件"oauthtest"中,可能包含了实现这些步骤的示例代码或测试用例,供参考和学习。...

    JAVA发送HttpClient请求及接收请求结果过程

    ### JAVA发送HttpClient请求及接收请求结果过程 #### 一、概述 在Java开发过程中,经常需要与外部系统进行HTTP通信,比如发送POST或GET请求来获取数据或提交数据。Apache HttpClient是一个强大的HTTP客户端库,提供...

    HttpURLConnection请求和HttpClient请求

    HttpURLConnection请求和HttpClient请求...................................................................

    HttpClient请求工具类 4.3

    适用于多线程的Httpclient请求的工具类

    提交路径传递json参数(httpClient请求)

    这个主题“提交路径传递json参数(httpClient请求)”主要关注如何通过HttpClient发送包含JSON数据的POST请求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于解析的特性,常用于...

    在java后端发送HTTPClient请求工具类

    在java后端发送HTTPClient请求工具类

    HttpClient请求

    android中使用HttpClient请求资源并返回数据

    HttpClient请求之基础

    HttpClient库广泛应用于需要与Web服务器进行交互的Java应用中,包括发送GET和POST请求等基本操作。 ### GET请求 GET请求是最常见的HTTP请求方法,用于从服务器获取资源。使用HttpClient发起GET请求的步骤如下: 1....

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

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

    HttpClient发送http请求需要的jar包

    4. 使用HttpClient的execute()方法发送请求,并获取HttpResponse对象。 5. 解析HttpResponse,获取状态码、响应头和实体内容。 6. 清理资源,关闭连接。 在实际开发中,你可能还需要考虑错误处理、重试策略、连接池...

    httpClient请求

    在本文中,我们将深入探讨HttpClient工具类及其在多个系统间数据请求中的应用。 首先,我们看到有两个文件:`HttpClientUtils.java`和`RestClient.java`。`HttpClientUtils`通常是封装了HttpClient核心操作的工具类...

    HttpClient 请求腾讯接口实例

    4. **执行请求**:通过HttpClient实例发送请求并获取HttpResponse: ```java HttpResponse response = httpClient.execute(request); ``` 5. **处理响应**:从HttpResponse中读取返回的数据,这可能是JSON、XML...

    给予javaWeb-httpclient请求https实例demo

    在Java Web开发中,HTTPClient库是一个非常强大的工具,它允许开发者执行HTTP和HTTPS请求,进行数据交互。本文将深入探讨如何使用HTTPClient库来发送HTTPS请求,以及涉及到的证书管理相关知识。 首先,理解HTTPS...

    HttpClient请求的所有jar包

    commons-codec-1.9.jar、commons-logging-1.2.jar、fluent-hc-4.5.1.jar、httpclient-4.5.1.jar、httpclient-cache-4.5.1.jar、httpclient-win-4.5.1.jar、httpcore-4.4.3.jar、httpmime-4.5.1.jar、jna-4.1.0.jar、...

    C++/CLI应用程序调用httpClient请求HTTP和用Newtonsoft解析json示例代码

    现在C++也不行了吗,网上找不到相关代码。为了搞清楚C++中如何使用httpClient和Newtonsoft,研究了一下午。我从未用C++编程,一直用C#,现学现卖。

    httpClient调用webservice接口

    此外,HttpClient还具有很高的灵活性和可扩展性,能够满足各种复杂的网络请求需求。 #### 三、调用WebService的基本步骤 1. **构建SOAP消息**:WebService通常使用SOAP协议进行通信。因此,首先需要构造一个符合...

Global site tag (gtag.js) - Google Analytics