91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何模擬多線程http請求代碼

發布時間:2021-08-09 09:33:03 來源:億速云 閱讀:460 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關java如何模擬多線程http請求代碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

java模擬http發送請求,第一種是HttpURLConnection發送post請求,第二種是使用httpclient模擬post請求,

實例代碼:

package test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

/**java 模擬測試多線程測試http請求
 * @author wdh
 *
 */

public class ServiceThreadTest implements Runnable{
		
	private String url;
	
	private Map<String,Object> paramStr;
	
	public ServiceThreadTest(String url, Map<String,Object> paramStr) {
		super();
		this.url = url;
		this.paramStr = paramStr;
	}

	
	public String getUrl() {
		return url;
	}


	public void setUrl(String url) {
		this.url = url;
	}


	public Map<String,Object> getParamStr() {
		return paramStr;
	}


	public void setParamStr(Map<String,Object> paramStr) {
		this.paramStr = paramStr;
	}


	@Override
	public void run() {
        // http請求實現方式
		CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpPost post = new HttpPost(url);
		RequestConfig config = RequestConfig.custom().setConnectionRequestTimeout(10000).setConnectTimeout(10000)
				.setSocketTimeout(10000).build();
		CloseableHttpResponse response = null;
		try {
			List<NameValuePair> params = setHttpNameValues(paramStr); 
		  HttpEntity httpentity=new UrlEncodedFormEntity(params,"utf-8");
			post.setEntity(httpentity);
			post.setConfig(config);
			response = httpClient.execute(post);	
			HttpEntity entity = response.getEntity();
			String content = EntityUtils.toString(entity);
			System.out.println("content:" + content);
		} catch (Exception e) {
			e.printStackTrace();
		}			
	}	
	
	private List<NameValuePair> setHttpNameValues(Map<String,Object> paramMap) {
		List<NameValuePair> params = new ArrayList<NameValuePair>(); 
		for (Entry<String, Object> entry:paramMap.entrySet()){
			 params.add(new BasicNameValuePair(entry.getKey(),entry.getValue().toString())); 
		}
	 
		return params;
	}


	public static void main(String[] args) {
       //運用java工具類中線程池
		ExecutorService pool = Executors.newCachedThreadPool();
		for (int i =0;i<2;i++) { //開啟倆個線程
			String url = "xxxx";
			Map<String,Object> paramStr = getHttpParamStr();
			pool.execute(new ServiceThreadTest(url,paramStr));
		}
	}

	public static Map<String,Object> getHttpParamStr() {
		Map<String, Object> param = new HashMap<String, Object>();
		param.put("apiversion", 1);
		param.put("appversion", "3.6.2");
		return param;
	}
}

關于“java如何模擬多線程http請求代碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梨树县| 蒙山县| 赣州市| 桃源县| 大竹县| 东莞市| 绍兴市| 长岭县| 淳安县| 武清区| 永州市| 乌海市| 莱西市| 札达县| 连城县| 广汉市| 乌鲁木齐市| 津市市| 米林县| 临汾市| 灵璧县| 林州市| 惠州市| 盐津县| 罗甸县| 兴仁县| 太康县| 慈溪市| 龙江县| 宁蒗| 丰都县| 库车县| 芒康县| 沅陵县| 赣榆县| 涿鹿县| 千阳县| 泸州市| 固阳县| 南澳县| 阿坝|