1、Pom文件添加httpClient 依赖
org.apache.httpcomponents httpclient 4.5.5
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"); ListparamList = new ArrayList (); 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