Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >HttpClient-Header、Cookie

HttpClient-Header、Cookie

作者头像
wangmcn
发布于 2022-07-25 09:12:32
发布于 2022-07-25 09:12:32
64400
代码可运行
举报
文章被收录于专栏:AllTests软件测试AllTests软件测试
运行总次数:0
代码可运行

Header、Cookie

目录

  • 1、Header
  • 2、Cookie

1、Header

1、创建Headers类。

添加2个Header:

内容格式设定为Json格式("content-type", "application/json")、自定义Header("Self-Header", "MySelfHeader")。

脚本代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.Header;
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;
import org.json.JSONObject;

/**
 * Header
 *
 * @author wangmcn
 *
 */
public class Headers {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/header");

              // 设置请求头信息
              httpPost.setHeader("content-type", "application/json");
              httpPost.setHeader("Self-Header", "MySelfHeader");
              // 添加Json参数
              JSONObject param = new JSONObject();
              param.put("username", "admin");
              param.put("password", "123456");
              // 将参数信息添加到方法中
              StringEntity entity = new StringEntity(param.toString(), "utf-8");
              httpPost.setEntity(entity);
             
              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取响应结果
              String result = EntityUtils.toString(response.getEntity(), "utf-8");
              // 将返回的响应结果字符串转化成为Json对象
              JSONObject resultJson = new JSONObject(result);
              // 获取网页源码
              System.out.println("获取网页源码:" + resultJson);
             
              // 获取请求头
              Header requestHeader[] = httpPost.getAllHeaders();
              for (Header header : requestHeader) {
                     System.out.println("请求头: " + header.getName() + ": " + header.getValue());
              }
              // 获取响应头
              Header responseHeader[] = response.getAllHeaders();
              for (Header header : responseHeader) {
                     System.out.println("响应头: " + header.getName() + ": " + header.getValue());
              }
             
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }

}

2、运行结果:

2、Cookie

1、创建Cookies类。

创建CookieStore对象,创建BasicClientCookie对象,添加Cookie。

脚本代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.test.demo;

import java.io.IOException;
import java.util.List;

import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

/**
 * Cookie
 *
 * @author wangmcn
 *
 */
public class Cookies {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CookieStore对象
              CookieStore cookieStore = new BasicCookieStore();
             
              // 创建BasicClientCookie对象,添加Cookie
              BasicClientCookie cookie = new BasicClientCookie("login", "true");
              cookie.setVersion(0);
              cookie.setDomain("localhost");
              cookie.setPath("/");
              cookieStore.addCookie(cookie);

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.custom()
                            // 设置Cookie
                            .setDefaultCookieStore(cookieStore)
                            .build();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/cookie");
              // 设置超时
              RequestConfig requestConfig = RequestConfig.custom()
                            .setConnectTimeout(15000) // 设置连接超时时间,单位毫秒
                            .setSocketTimeout(15000) // 请求获取数据的超时时间,单位毫秒
                            .setConnectionRequestTimeout(15000) // 设置从connect Manager获取Connection超时时间,单位毫秒
                            .build();
              httpPost.setConfig(requestConfig);
              // 设置请求头信息
              httpPost.setHeader("content-type", "application/json");
              // 添加Json参数
              JSONObject param = new JSONObject();
              param.put("username", "admin");
              param.put("password", "123456");
              // 将参数信息添加到方法中
              StringEntity entity = new StringEntity(param.toString(), "utf-8");
              httpPost.setEntity(entity);
              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取响应结果
              String result = EntityUtils.toString(response.getEntity(), "utf-8");
              // 将返回的响应结果字符串转化成为Json对象
              JSONObject resultJson = new JSONObject(result);
              // 获取网页源码
              System.out.println("获取网页源码:" + resultJson);

              // 获取Cookie
              ListcookieList = cookieStore.getCookies();
              for (Cookie cookies : cookieList) {
                     System.out.println("Cookie: " + cookies.getName() + "; " + cookies.getValue());
              }

              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }

}

2、运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HttpClient-Json格式、设置超时
Json格式、设置超时 目录 1、Json格式 2、设置超时 1、Json格式 1、创建Json类。 发送数据将数据类型转为Json格式。 接收数据将数据类型转为Json格式。 脚本代码: package com.test.demo; import java.io.IOException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHtt
wangmcn
2022/07/25
6040
HttpClient-Json格式、设置超时
测试框架-TestNG-结合Selenium、Appium、OkHttp、HttpClient的简单示例
4、执行脚本(testng.xml鼠标右键Run As--->TestNG Suite)。
wangmcn
2022/07/25
1.4K0
测试框架-TestNG-结合Selenium、Appium、OkHttp、HttpClient的简单示例
HTTP 请求工具类
坐标 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classifier>jdk15</classifier> </dependency> 工具类 package com.baomidou.springboot.uti
高大北
2022/06/14
9320
HttpClient技术
HttpClient 一、介绍 简介 坐标 二、应用 发送get请求不带参数 发送get请求带参数 发送post请求不带参数 发送post请求带参数 发送post请求带json类型参数 三、HTTPClient工具类的使用 工具类代码 一、介绍 简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、 功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 HTTP 协议可能是现在 Inter
时间静止不是简史
2020/07/25
1.7K0
JavaUtil_06_HttpUtil_使用httpclient实现
一、简介 使用 appache 的 httpclient 来实现的 二、源码 package com.ray.weixin.gz.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.Consts; import org.apache.http.Header; import org.
shirayner
2018/08/10
9300
HttpClient详细解释
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。
全栈程序员站长
2022/11/16
1.5K0
Apache HttpClient 5 使用详细教程
超文本传输协议(HTTP)可能是当今互联网上最重要的协议之一,Web 服务、微服务以及支持网络的各种设备上的服务几乎都是 HTTP 协议,HTTP 协议已经从 Web 浏览器走向了更广泛的使用场景。
未读代码
2022/11/21
6.5K0
Apache HttpClient 5 使用详细教程
Apache httpClient+Jackson学习笔记
HTMLUnit可以用来做爬虫的。Jsoup比他跟简洁。使用python语言进行爬虫.开箱即用。
全栈程序员站长
2022/06/30
2.4K0
Apache httpClient+Jackson学习笔记
工具篇:apache-httpClient 和 jdk11-HttpClient的使用
apache HttpClient 是 java项目里 较为常用的组件之一;对接外部服务时,各个商家提供的接口是各式各样的,有自己的要求,因此要定制对应的请求客户端。httpClient是一个不错的选择
潜行前行
2021/12/02
1.9K0
工具篇:apache-httpClient 和 jdk11-HttpClient的使用
HttpClient入门学习一
1、HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
别先生
2020/12/01
8430
HttpClient-Get请求、Post请求
有参数,请求链接为url(http://localhost:8083/getdemo2)
wangmcn
2022/07/25
2.7K0
HttpClient-Get请求、Post请求
CloseableHttpClient简单使用实例[通俗易懂]
import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.Charset; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException;
全栈程序员站长
2022/07/25
8750
java使用httpclient调用第三方接口
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141981.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
9090
httpclient模拟post请求json封装表单数据
以下代码包括最基本的GET、POST、JSON参数的POST方式的请求。(相当于POSTMAN中使用raw编写的参数)
I Teach You 我教你
2018/12/14
8.2K0
封装httpClient工具类进行get、post、put、delete的http接口请求,可添加请求头与参数,支持多线程
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157763.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/18
2.6K0
HttpClient使用不当,服务挂了,是时候系统学习一下了
事件一:联调微信支付接口,用到HttpClient,花时间整理了一番。如果有一篇文章,读一读就可以掌握HttpClient 80%的内容,再有可以直接用的Demo,下次再遇到是不是就可以非常容易集成了?这篇便是这篇文章的目标之一。
程序新视界
2021/12/20
1.8K0
Httpclient 调用 HTTPS 加密通道的Restful服务
为 Restful 增加 SSL 证书,保证数据在传输中安全。 证书有两类,一类是授信办颁发构的证书,另一类是自己创建的证书,两种证书使用效果上一样。 授信证书的跟证书默认已经安装在操作系统,浏览器中,访问时会出现锁头跟绿色标识。这种证书是需要购买的,因为这些证书厂商每年都要像微软,苹果等等操作系统厂商支付一定费用。 最近火狐公司发表声明,将取消“沃通”根证书,这就意味着这所有沃通用户都会变成 红叉叉。 对于内部业务不需要对外提供服务,例如Restful 服务,我见意自己创建证书,如果你需要让浏览器地址栏变
netkiller old
2018/03/05
3.1K0
HttpClient4 获取cookie
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163256.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
1.3K0
java爬虫带你爬天爬地爬人生,爬新浪
HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本。它的主要功能有:
好好学java
2018/10/18
1.1K0
HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。
全栈程序员站长
2022/09/15
8420
相关推荐
HttpClient-Json格式、设置超时
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验