Java 服務端通訊之httpClient
阿新 • • 發佈:2019-02-11
httpClient是java服務端可以主動傳送http請求的很好用的一個輕量級工具。使用起來應該說是非常方便的。
首先在pom.xml檔案中引入依賴:
<!-- HTTP訪問工具httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
程式碼更是簡潔:
HttpResponse response = null; HttpClient httpclient = HttpClients.createDefault();// 建立http連線的客戶端 HttpPost post = new HttpPost("http://192.168.x.xxx:8080/login/enter.do");// 建立一個post請求 try { RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();//設定請求和傳輸超時時間 post.setConfig(requestConfig); //寫入引數,有兩種方法,一種是將引數逐個放入list中,另一種是拼接在一起(根據自己的需求任選一種)。 //第一種 List<NameValuePair> list = new ArrayList<>();//定義名值對列表 JSONObject obj = new JSONObject(); //把引數放到list中 list.add(new BasicNameValuePair("userName", "zhangsan")); list.add(new BasicNameValuePair("passWord", "666")); //把引數編碼到表單實體中 HttpEntity postentity = new UrlEncodedFormEntity(list,"utf-8"); //第二種,拼接引數 /*String baseString = "userName=zhangsan&passWord=666"; StringEntity stringEntity = new StringEntity(baseString,"utf-8"); post.setEntity(stringEntity);//將請求實體放到post請求中*/ post.setEntity(postentity);//將請求實體放到post請求中 post.completed(); response = httpclient.execute(post);// 用客戶端去執行post請求,返回響應 HttpEntity entity = response.getEntity();// 從響應中拿到響應實體 //收到的響應 String responseText = EntityUtils.toString(entity); } catch (Exception e){ e.printStackTrace(); }finally{ //釋放連線 post.releaseConnection(); }