1. 程式人生 > >java 模擬帶session的http請求

java 模擬帶session的http請求

1.不帶session的請求

服務端

@RequestMapping("/test1")
@ResponseBody
public String test1() {
	return "no land can see !";
}

客戶端

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet getMethod = new HttpGet("http://localhost:8081/test1");
HttpResponse response;
try {
	response = httpclient.execute(getMethod);
	System.out.println(EntityUtils.toString(response.getEntity()));
} catch (ClientProtocolException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

結果

no land can see !

2.帶session的http請求

服務端

@RequestMapping("/test2")
@ResponseBody
public String test2(HttpServletRequest request) {
	if (request.getSession().getAttribute("name") == null)
		return "no land no see !";
	else
		return "landed can see!";
}

客戶端

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet getMethod = new HttpGet("http://localhost:8081/test2");
HttpResponse response;
try {
	response = httpclient.execute(getMethod);
	System.out.println(EntityUtils.toString(response.getEntity()));
} catch (ClientProtocolException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

結果

no land no see !

3.模擬登入

服務端

@RequestMapping("/land")
@ResponseBody
public String land(HttpServletRequest request) {
	request.getSession().setAttribute("name", "knife");
	return "land !";
}

客戶端

        CloseableHttpClient httpclient=HttpClients.createDefault();
		HttpGet getMethod = new HttpGet("http://localhost:8081/land");
		HttpResponse response;
		try {
			response = httpclient.execute(getMethod);
			System.out.println(EntityUtils.toString(response.getEntity()));
			
			Header[] headers= response.getAllHeaders();
			String cookie=null;
			for(Header header:headers){
				if(header.getName().equals("Set-Cookie"))
					cookie=header.getValue();
			}
			
			if(cookie!=null){
				
				HttpGet getMethodWithCookie = new HttpGet("http://localhost:8081/test2");
				getMethodWithCookie.addHeader("Cookie",cookie);
				response=httpclient.execute(getMethodWithCookie);
				System.out.println(EntityUtils.toString(response.getEntity()));
			}
			
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

結果

land !
landed can see!

4.httpclient的pom檔案

<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.5.3</version>
</dependency>

相關推薦

java 模擬session的http請求

1.不帶session的請求 服務端 @RequestMapping("/test1") @ResponseBody public String test1() { return "no land can see !"; } 客戶端 CloseableHttpCli

java模擬高併發請求

實現高併發請求,即同一個程序開闢出多個執行緒請求相同的資源 ,再同時對一個資源進行訪問操作。  我們都知道 要實現一個多執行緒的併發服務可以有兩種方式,一種是繼承 Theard  類 ,另一種是實現Runnable 介面  在java.lang.Theard 包中,可以看

Java模擬HTTP請求cookie

不多說,直接上程式碼 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader;

java Ajax跨域請求COOKIE無法上的解決辦法

coo $.ajax test style dem log json bsp ros 1.web.xml加入以下節點,,一定放在第一個filter <!--目錄下所有文件可以跨域Begin--> <filter> <filter-

Java 模擬 HTTP 請求

exe execute source -h org gethost apach enc target 使用方法 HttpClient http://hc.apache.org/httpcomponents-client-ga/httpclient/dependency-in

curl java 模擬http請求

col ont font nbsp pri tin throw url while curl java 模擬http請求 直接上代碼: 1 public static void main(String args[]) throws Exception { 2 3

java使用代理模擬http get請求

ie 6 clas net 5.1 set line user cep ade 直接上代碼: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Inet

如何使用postman及外掛postman interceptor 實現模擬站點cookie的請求呼叫

前提:瀏覽器chrome及chrome外掛安裝 背景:前後端分離後,除錯後端介面需要模擬前端發起的請求,構建請求引數較為費事,不如將瀏覽器cookie及請求引數一起帶出通過postman 模擬前端請求。 1、安裝chrome外掛postman interceptor及谷歌應用postman

java程式碼利用RestTemplate模擬http傳送請求

我這邊用SpringBoot來配置RestTemplate 直接上程式碼,先是配置類 /** * Description: httpApiConfig, 用於restTemplate * User: zhouzhou * Date: 2018-09-14 * Time: 13:25 *

Java模擬HTTP請求2

之前轉過一篇基於HttpClient的Java模擬HTTP請求,使用的第三方jar檔案,這次升級JDK11之後模擬HTTP請求不需要再匯入第三方jar檔案了,官方擴充套件了java.net包,所有的HTTP請求相關類均位於java.net.http包內,示例程式碼如下: package xyz.

Java 模擬http請求 親測可用

原創地址  http://www.cnblogs.com/vitre/p/5474166.html 注意 相關包路徑 不要導錯 package ln; import java.io.BufferedReader; import java.io.IOException; imp

java模擬多執行緒http請求

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模擬傳送form-data的請求

package com.silot.test; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.Htt

java模擬post請求

HttpURLConnection模擬POST請求 public class HttpUtilTest { public String sendPost(String url, String Params) throws IOException {

HTTP協議簡介詳解 HTTP協議發展 原理 請求方法 響應狀態碼 請求請求首部 java模擬瀏覽器客戶端服務端

協議簡介 協議,自然語言裡面就是契約,也是雙方或者多方經過協商達成的一致意見; 契約也即類似於合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通訊協議,也即是雙方通過網路通訊必須遵從的一組約定; 計算機網路的本質在於傳遞資料,協議自然是針對於資料的結構格式以及傳送規則的約定;

java 模擬http傳送json請求

java中經常會用到模擬http請來發送各種訊息,比如說,有get請求,post請求,post請求的引數又包括一般引數和json引數,http工具程式碼如下:import java.io.BufferedReader; import java.io.IOException;

關於java模擬http請求的小錯誤

在java模擬http請求的時候,報錯,程式碼,錯誤詳情如下: Configuration.xml <?xml version="1.0" encoding="UTF-8"?> <system> <!--請求url-->

java模擬http的Get/Post請求,並設定ip與port代理

1、因為很多公司的內網都設有代理,瀏覽器通過ip與port上網,而java程式碼模擬http get方式同樣需要外網代理; 2、Java實現http的Get/Post請求程式碼; 3、主要是設定HttpURLConnection請求頭裡面的屬性 比如Cookie、Us

java模擬http請求小例子

工作當中經常需要用java程式 傳送請求來獲取資料集,今天整理一個簡單的小例子程式 基本步驟 1.通過統一資源定位器(java.net.URL)獲取聯結器(java.net.URLConnection) 2.設定請求引數 3.傳送請求 4.以輸入流的形式獲取返回內容 5.關

Java模擬httpGet請求並獲取返回的資料

1.程式碼例項如下: public class HttpgetUtils { public static String sendGETRequest(String path, Map param