1. 程式人生 > >org.apache.commons.httpclient.HttpClient 設定資料接收超時

org.apache.commons.httpclient.HttpClient 設定資料接收超時

1.使用方法

/**
	 * http post請求後返回的字串資訊
	 * 
	 * @param url
	 *            請求的url地址
	 * @param data
	 *            請求引數各個表單域的值NameValuePair
	 * @return
	 */
	public static String httpPost(String url, NameValuePair[] data) throws Exception{
		String returnStr = "";
		PostMethod postMethod = new PostMethod(url);
		try {
			postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");


			// url的連線等待超時時間設定
			client.getHttpConnectionManager().getParams().setConnectionTimeout(connectionTimeout);

			// 讀取資料超時時間設定
			client.getHttpConnectionManager().getParams().setSoTimeout(soTimeout);

			// 將表單的值放入postMethod中
			postMethod.setRequestBody(data);

			// 執行postMethod
			int statusCode = client.executeMethod(postMethod);

			for (Header header : postMethod.getResponseHeaders()) {
				System.out.println(header.getName() + " : " + header.getValue());
			}
			// 判斷回覆響應狀態是否正常
			if (statusCode == HttpStatus.SC_OK) {
				returnStr = new String(postMethod.getResponseBodyAsString());
			}
		} catch (SocketTimeoutException ex) {
			log.error("http post請求異常! 請求url:" + url);
			log.error(ex);
			throw new SocketTimeoutException("響應超時:"+ex.getMessage()+url);
		}  catch (Exception ex) {
			log.error("http post請求異常! 請求url:" + url);
			log.error(ex);
			throw new Exception();
		} finally {
			// 釋放連線
			if (postMethod != null) {
				try {
					postMethod.releaseConnection();
				} catch (final Exception e) {
				}
			}
		}
		return returnStr;
	}

2.呼叫

Map<String,Object> req=new HashMap<String,Object>();
	try {
			String rs=HttpClientUtils.httpPostSPP(SPPUrl,HttpClientUtils.generatnamevaluepair(req));
			return JSONObject.fromObject(rs);
		}catch (SocketTimeoutException e) {
			logger.info(e.getMessage());
			throw new SocketTimeoutException(e.getMessage());
		} catch (Exception e) {
			throw new UnCaughtException();
		}


相關推薦

org.apache.commons.httpclient.HttpClient 設定資料接收超時

1.使用方法 /** * http post請求後返回的字串資訊 * * @param url * 請求的url地址 * @param data * 請求引數各個表單域的值NameValuePair

Apache下兩個HttpClient的區(org.apache.commons.httpclient.HttpClientorg.apache.http.client.HttpClient

在我們使用java來模擬提交時經常會用到HttpClient類,但是會發現在Apache下有兩個包下有此類。 1. org.apache.commons.httpclient.HttpClient 2. org.apache.http.client.HttpClient

有關於org.apache.commons.httpclient匯入maven依賴

<dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> &

org.apache.commons.httpclient.HttpClient的使用

package com.httpclient1; import java.util.HashMap; import java.util.Map; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.a

org.apache.http.client.HttpClientorg.apache.commons.httpclient.HttpClient的區別

最近看專案的程式碼,看到工程中有兩個jar包張的很像,一個是commons.httpclient-3.1.jar,一個是httpclient4.2.1.jar,很納悶,而且這兩個包裡都有HttpClient這個類,但是包名卻不一樣,然後就查找了一番資料,看下這兩個包到底是

Android studio沒有org.apache.http.client.HttpClient;等包問題 解決方案

target ace mon studio clas 技術 upload rep img 以前用Eclipse做Android開發工具一直使用apache的http做網絡請求,最近換用了Android studio發現沒有辦法引用apache的包,下面是我引用的步驟

解決啟動時報ClassNotFoundException: org.apache.http.client.HttpClient異常的問題

最近在研究阿里的分散式事務框架GTS,在執行sample-txc-simple時,拋以下異常: JM.Log:INFO Set diamond-client log path: C:\Users\chanson\logs\diamond-client Exception in thread "m

記一個springboot專案無法匯入import org.apache.http.client.HttpClient的問題

問題版本是springboot2.0.4。因為專案是依賴於springcloud 的,本來想著springcloud 下的eureka-client和ribbon都會自動依賴於httpclient的。所以直接加入了eureka和ribbon的dependency。結果發現ex

org.apache.http.client.httpclient報錯:

原因是Android 5.1中,org.apache.http包中的類和AndroidHttpClient類均已被廢棄。 解決的辦法是: 在sdk下的.....下的optional包下放那個jar包,

org.apache.http.client.HttpClient get/post請求

請求步驟 1、建立httpclient 物件 2、建立 請求方式,建構函式的值為請求路徑 3、呼叫1中物件的execute() 方法,引數為 2 的物件 4、獲取請求響應資料 5、釋放連線資源6、處理資料 一、使用org.apache.http.client.HttpCl

【FTP】org.apache.commons.net.ftp.FTPClient實現復雜的上傳下載,操作目錄,處理編碼

ttr hide working log 登錄 有一個 ima spl att 和上一份簡單 上傳下載一樣 來,任何的方法不懂的,http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/

java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

apache con ont test oca action error esp iat 1.java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils 缺少類 2. There is no Ac

java.lang.ClassNotFoundException: org.apache.commons.dbutils.QueryRunner

ica ror server acc dwr comm erro tor reads 七月 28, 2017 11:06:33 下午 org.apache.catalina.core.StandardWrapperValve invoke嚴重: Servlet.serv

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

pro .com spa exception nbsp build 下載 .org col 運行一個Spring程序的時候,一直報錯,如下: 解決辦法: 下載 :commons-logging-1.2.jar包 地址:http://commons

對於org.apache.commons.dbcp.BasicDataSource的配置認知

使用 回滾 路徑 blog 出錯 ati 方式 factory 忽略 對於org.apache.commons.dbcp.BasicDataSource的配置認知 對於org.apache.commons.dbcp.BasicDataSource的配置認知【轉】 S

java中反向轉義org.apache.commons.lang3.StringEscapeUtils.unescapeJava

style javascrip 內容 ons 字符 set htm templates 關鍵字 工具類中包含類反向轉義的方法: eorderHistory.setSubPrintTemplates(StringEscapeUtils.unescapeJava(eord

Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [applicationContext

Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [applicationContext.xml]; 該錯誤是因

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications

The last packet successfully received from the server was 1,540,276,322,598 milliseconds ago. The last packet sent successfully to the server was 0 m

日期格式化類DateFormatUtils【org.apache.commons.lang3.time.DateFormatUtils】

lang3官方版本 Maven依賴 本文以3.7版本為例: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</ar

日期處理類DateUtils 【org.apache.commons.lang3.time.DateUtils】

lang3官方版本 Maven依賴 本文以3.7版本為例: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</ar