1、Pom文件添加httpClient 依赖

        <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.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 = ; 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", ""); 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() == ) {
// 读取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() == ) {
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, , "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 = ; 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[]);
System.out.println(headers[]);
// 遍历迭代器
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());
}
} }

HttpClient-get请求/Post请求/Post-Json/Header的更多相关文章

  1. HttpClient (POST GET PUT)请求

    HttpClient (POST GET PUT)请求 package com.curender.web.server.http; import java.io.IOException; import ...

  2. httpclient实现的get请求及post请求

    导出mven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId& ...

  3. HttpClient方式模拟http请求设置头

    关于HttpClient方式模拟http请求,请求头以及其他参数的设置. 本文就暂时不给栗子了,当作简版参考手册吧. 发送请求是设置请求头:header HttpClient httpClient = ...

  4. HttpClient的get+post请求使用

    啥都不说,先上代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade ...

  5. HttpClient发送get post请求和数据解析

    最近在跟app对接的时候有个业务是微信登录,在这里记录的不是如何一步步操作第三方的,因为是跟app对接,所以一部分代码不是由我写,我只负责处理数据,但是整个微信第三方的流程大致都差不多,app端说要传 ...

  6. HttpWebRequest 改为 HttpClient 踩坑记-请求头设置

    HttpWebRequest 改为 HttpClient 踩坑记-请求头设置 Intro 这两天改了一个项目,原来的项目是.net framework 项目,里面处理 HTTP 请求使用的是 WebR ...

  7. spring boot get和post请求,以及requestbody为json串时候的处理

    GET.POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的 ...

  8. httpclient的几种请求URL的方式

    一.httpclient项目有两种使用方式.一种是commons项目,这一个就只更新到3.1版本了.现在挪到了HttpComponents子项目下了,这里重点讲解HttpComponents下面的ht ...

  9. [SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据

    通过SoapUI发送POST请求,请求的body是JSON格式的数据: data={"currentDate":"2015-06-19","reset ...

  10. 我的Android进阶之旅------>android如何将List请求参数列表转换为json格式

    本文同步发表在简书,链接:http://www.jianshu.com/p/395a4c8b05b9 前言 由于接收原来的老项目并进行维护,之前的http请求是使用Apache Jakarta Com ...

随机推荐

  1. 编程作业2.2:Regularized Logistic regression

    题目 在本部分的练习中,您将使用正则化的Logistic回归模型来预测一个制造工厂的微芯片是否通过质量保证(QA),在QA过程中,每个芯片都会经过各种测试来保证它可以正常运行.假设你是这个工厂的产品经 ...

  2. 微信小程序-wx.request-路由跳转-数据存储-登录与授权

    wx.request 相当于发送ajax请求 官方文档示例代码 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '', y: '' ...

  3. win10 python 3.7 pip install tensorflow

    环境: ide:pyCharm 2018.3.2 pyhton3.7 os:win10 64bit 步骤: 1.确认你的python有没有装pip,有则直接跳2.无则cmd到python安装目录下ea ...

  4. 【转】我们为什么要使用 Markdown

    目录 从前码字时我们面临着什么困境 标记语言显神威 到底什么是 Markdown 所以为什么我们要使用 Markdown Markdown 简明语法 段落和换行 标题 区块引用 列表 强调 代码标识和 ...

  5. epoll——IO多路复用选择器

    上上篇博客讲的套接字,由于其阻塞性而导致一个服务端同一时间只能与一个客户端连接.基于这个缺点,在上篇博客我们将其设置为非阻塞实现了一个服务端同一时间可以与多个客户端相连,即实现了并发,但其同样留下了一 ...

  6. C++对象的动态建立与释放

    new运算符动态分配堆内存  (从堆分配一块“类型”大小的存储空间,并且返回首地址) 1.写程序的时候,经常需要动态的分配和撤销内存空间,C语言中常常是利用库函数 malloc 和 free 来分配和 ...

  7. linux笔记(一)——基本命令和快捷键

    linux笔记(一) 1.常用BASH快捷键 编辑命令 快捷键 作用 Ctrl + a 移到命令行首 Ctrl + e 移到命令行尾 Ctrl + xx 在命令行首和光标之间移动 Ctrl + u 从 ...

  8. Oscar的数理统计笔记本

    目录 Random Variable discrete distribution: continuous distribution: 统计量 现代统计学时期: Survey sampling Rand ...

  9. winform把所有dll打包成一个exe

    大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的“绿色版”也是相 ...

  10. Perl语言入门:第九章 使用正则表达式处理文本 示例程序和代码

    #! /usr/bin/perl use strict; use warnings; print "\n----------------------------------_substitu ...