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()); } } }