java+httpclient—— 一个简单的get请求——python的flask服务器模拟接口返回
flask 提供web接服务:
from flask import Flask,request app = Flask(__name__) @app.route('/') def index(): print(request.headers) print('-----------------------------------------------------------------') print(request.cookies) print('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++') return 'abc123' if __name__ == '__main__': app.run(debug=True)
通过java+httpclient发送请求:
import java.io.IOException; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class requestceshi { public static void main(String[] args) throws ClientProtocolException, IOException { CloseableHttpClient client = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://127.0.0.1:5000/"); CloseableHttpResponse Response = client.execute(httpGet); System.out.println(Response.getProtocolVersion()); System.out.println(Response.getStatusLine()); System.out.println(Response.getStatusLine().getStatusCode()); System.out.println(",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"); System.out.println(Response.getHeaders("csrftoken")); System.out.println(Response.getFirstHeader("Content-Type")); System.out.println(Response.getFirstHeader("Content-Length")); System.out.println(Response.getFirstHeader("Server")); System.out.println("/////////////////////////////////////////////////////////////////"); System.out.println(httpGet.getMethod()); System.out.println(httpGet.getURI()); System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); Header[] headers = Response.getAllHeaders(); for (Header header : headers) { System.out.println(header.getName()+": "+ header.getValue()); } System.out.println("------------------------------------------------------"); HttpEntity responseEntity = Response.getEntity(); System.out.println(Response.getStatusLine()); System.out.println(responseEntity.getContentLength()); System.out.println(EntityUtils.toString(responseEntity)); Response.close(); } }
请求执行结果:
HTTP/1.0
HTTP/1.0 200 OK
200
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
[Lorg.apache.http.Header;@5ae9a829
Content-Type: text/html; charset=utf-8
Content-Length: 6
Server: Werkzeug/2.0.1 Python/3.9.4
/////////////////////////////////////////////////////////////////
GET
http://127.0.0.1:5000/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Content-Type: text/html; charset=utf-8
Content-Length: 6
Server: Werkzeug/2.0.1 Python/3.9.4
Date: Thu, 29 Jul 2021 13:10:04 GMT
------------------------------------------------------
HTTP/1.0 200 OK
6
abc123
=====================================================================================
=====================================================================================
python中打印request的header如下:
Host: 127.0.0.1:5000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_101)
Accept-Encoding: gzip,deflate
-----------------------------------------------------------------
ImmutableMultiDict([])
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++