1、Pom文件添加httpClient 依賴
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency>
2、 HttpGet
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 HttpTest { // main Alt+? public static void main(String[] args) { // 1.創建一個httpclient,默認的 CloseableHttpClient client = HttpClients.createDefault(); // 2.創建一個get請求方法 HttpGet get = new HttpGet("http://mail.163.com"); CloseableHttpResponse response = null; try { ///// // 3.執行請求,獲取到響應 response = client.execute(get); System.out.println(response.getStatusLine());// 狀態行 System.out.println(response.getStatusLine().getStatusCode());// 狀態碼 System.out.println(response.getStatusLine().getProtocolVersion());// 協議版本 System.out.println(response.getStatusLine().getReasonPhrase());// 響應描述 System.out.println("######################"); Header[] allHeaders = response.getAllHeaders(); System.out.println(allHeaders.length); for (int i = 0; i < allHeaders.length; i++) { System.out.println(allHeaders[i]); } System.out.println("################"); System.out.println(response.getFirstHeader("Server")); System.out.println(response.getFirstHeader("Server").getValue());// 獲取value System.out.println(response.getFirstHeader("Content-Type").getValue());// 獲取value System.out.println("################"); // 實體 HttpEntity entity = response.getEntity(); // 獲取實體類型 System.out.println(entity.getContentType()); // 實體長度,文件下載最常用,一般網頁無此參數 System.out.println(entity.getContentLength()); // EntityUtils實體類的工具包 ,將實體對象轉成Stirng或者byte System.out.println(EntityUtils.toString(entity, "utf-8"));// 可以指定編碼格式(中文:utf-8或者GBK) } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (response != null) response.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // syso Alt+? System.out.println(); } }
3、HttpPost請求
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HeaderIterator; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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; public class LoginTest { public static void main(String[] args) { CloseableHttpClient client = HttpClients.createDefault(); HttpPost post = new HttpPost("http://localhost/loginController/loginPage"); // 表單參數,並放入list中 NameValuePair username = new BasicNameValuePair("userName", "taki"); NameValuePair password = new BasicNameValuePair("password", "1"); List<NameValuePair> paramList = new ArrayList<NameValuePair>(); paramList.add(username); paramList.add(password); CloseableHttpResponse response = null; try { // form實體,放入到請求中 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); post.setEntity(entity); response = client.execute(post); System.out.println(response.getStatusLine().getStatusCode()); // 根據返回碼,200為成功,繼續操作 if (response.getStatusLine().getStatusCode() == 200) { // 讀取header HeaderIterator headerIterator = response.headerIterator(); while (headerIterator.hasNext()) { System.out.println(headerIterator.next()); } System.out.println("####################"); // 讀取實體 System.out.println(EntityUtils.toString(response.getEntity())); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (response != null) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
4、HttpPost 請求Json數據(該接口不通)
import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.HeaderIterator; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class JsonTest { public static void main(String[] args) { CloseableHttpClient client = HttpClients.createDefault(); HttpPost post = new HttpPost("http://117.122.238.33/webservice/services/Rest/account"); post.setHeader("Content-Type", "application/json"); CloseableHttpResponse response = null; try { StringEntity entity = new StringEntity( "{\"name\": \"jiaminqiang\",\"billingAddress\": \"beijing\", \"phoneNumber\": \"15801396646\"}"); post.setEntity(entity); response = client.execute(post); System.out.println(response.getStatusLine().getStatusCode()); if(response.getStatusLine().getStatusCode() == 201) { HeaderIterator headerIterator = response.headerIterator(); while(headerIterator.hasNext()) { System.out.println(headerIterator.next()); } System.out.println("##############"); System.out.println(EntityUtils.toString(response.getEntity())); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(response!=null) { try { response.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
5、Http添加Header
import org.apache.http.Header; import org.apache.http.HeaderIterator; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.HttpVersion; import org.apache.http.message.BasicHttpRequest; import org.apache.http.message.BasicHttpResponse; public class HeaderTest { public static void main(String[] args) { HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 404, "not found"); // request 操作header同response HttpRequest request = new BasicHttpRequest("post", "mail.163.com"); request.addHeader("", ""); //添加header name唯一 response.setHeader("Set-Cookie", "test1"); response.setHeader("Set-Cookie2", "test"); //添加header name可重復 response.addHeader("Set-Cookie", "test2"); // Ctrl + 2 l 自動生成返回類型變量 Header[] allHeaders = response.getAllHeaders(); // Ctrl + d 刪除一行 // Ctrl + Shift + f 代碼格式化 // Ctrl + / 注釋一行 // Ctrl + Shift + / 多行注釋 // Ctrl + z 撤銷 // Ctrl + s 保存 // Header[] allHeaders3 = response.getAllHeaders(); // String [] s = {"1","2","aa"}; // for(int i = 0;i<s.length;i++) { // System.out.println(s[i]); // } for (int i = 0; i < allHeaders.length; i++) { System.out.println(allHeaders[i]); } System.out.println(response.getStatusLine()); System.out.println(response.getFirstHeader("Set-Cookie")); System.out.println(response.getLastHeader("Set-Cookie")); Header[] headers = response.getHeaders("Set-Cookie"); System.out.println(headers[0]); System.out.println(headers[1]); // 遍歷迭代器 HeaderIterator headerIterator = response.headerIterator(); // System.out.println(headerIterator.nextHeader()); // System.out.println(headerIterator.nextHeader()); System.out.println("###################"); while (headerIterator.hasNext()) { System.out.println(headerIterator.nextHeader()); } } }