java设置httpheaders_HttpClient 请求添加Header头部信息

2023-11-06

HTTP消息可以包含许多描述消息属性的标头,例如内容长度,内容类型,授权等。 HttpClient提供了检索,添加,删除和枚举标头的方法。 在下面的教程中,我们将演示如何将自定义HTTP头添加到HttpClient和Http请求方法。

Maven依赖关系

我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。

pom.xml 文件的内容如下
 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.yiibai.httpclient.httmethods

http-get

1.0.0-SNAPSHOT

https://memorynotfound.com

httpclient - ${project.artifactId}

org.apache.httpcomponents

httpclient

4.5.2

maven-compiler-plugin

3.5.1

1.8

1.8

自定义HTTP头示例

HttpClient允许我们添加,编辑,删除或枚举http头。 首先来看看在HttpClient上设置默认标头。 接下来,我们在消息上添加自定义HTTP请求标头。

文件:HttpClientRedirectHandlingExample.java -

import org.apache.http.Header;

import org.apache.http.HttpEntity;

import org.apache.http.HttpHeaders;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.ResponseHandler;

import org.apache.http.client.methods.HttpUriRequest;

import org.apache.http.client.methods.RequestBuilder;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicHeader;

import org.apache.http.util.EntityUtils;

import java.io.IOException;

import java.util.Arrays;

import java.util.List;

/**

* This example demonstrates how to use custom http headers.

*/

public class HttpClientCustomHeadersExample {
public static void main(String... args) throws IOException {
// create custom http headers for httpclient

List defaultHeaders = Arrays.asList(

new BasicHeader("X-Default-Header", "default header httpclient"));

// setting custom http headers on the httpclient

CloseableHttpClient httpclient = HttpClients

.custom()

.setDefaultHeaders(defaultHeaders)

.build();

try {
// setting custom http headers on the http request

HttpUriRequest request = RequestBuilder.get()

.setUri("http://httpbin.org/headers")

.setHeader(HttpHeaders.CONTENT_TYPE, "application/json")

.setHeader(HttpHeaders.FROM, "https://memorynotfound.com")

.setHeader("X-Custom-Header", "custom header http request")

.build();

System.out.println("Executing request " + request.getRequestLine());

// Create a custom response handler

ResponseHandler responseHandler = response -> {
int status = response.getStatusLine().getStatusCode();

if (status >= 200 && status 

HttpEntity entity = response.getEntity();

return entity != null ? EntityUtils.toString(entity) : null;

} else {
throw new ClientProtocolException("Unexpected response status: " + status);

}

};

String responseBody = httpclient.execute(request, responseHandler);

System.out.println("----------------------------------------");

System.out.println(responseBody);

} finally {
httpclient.close();

}

}

}

执行上面示例代码,得到以下结果 -

Executing request GET http://httpbin.org/headers HTTP/1.1

----------------------------------------

{
"headers": {
"Accept-Encoding": "gzip,deflate",

"Connection": "close",

"Content-Type": "application/json",

"From": "https://memorynotfound.com",

"Host": "httpbin.org",

"User-Agent": "Apache-HttpClient/4.5.5 (Java/1.8.0_65)",

"X-Custom-Header": "custom header http request",

"X-Default-Header": "default header httpclient"

}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java设置httpheaders_HttpClient 请求添加Header头部信息 的相关文章

  • 股指期货日内平仓手续费高,锁仓可以解决吗

    对于平今加收的品种 以股指为例 如何解决日内手续费过高的问题 解决方案如下 逻辑讲解 现阶段股指手续费 张三交易IF合约 如果是日内开仓 日内平仓的话 根据交易所的交易规则 则张三开仓扣除25元手续费 日内平仓的还需扣除378元手续费 总计
  • [计算机组成原理] 以低字节地址为字地址

    以低字节地址为字地址 就是小端存储模式 数据低位 或者说低字节 存储在内存低地址 以高字节地址为字地址 就是大端存储模式 数据低位 或者说高字节 存储在内存高地址 现在看一个例题 这个题目有一个需要明确的地方 什么是第一 第二 第三字节 对
  • WPF 实现多语言

    1 编写Chinese xml English xml文件 2 在项目的App xml文件中

随机推荐

  • laravel —— 神奇的服务容器

    容器 字面上理解就是装东西的东西 常见的变量 对象属性等都可以算是容器 一个容器能够装什么 全部取决于你对该容器的定义 当然 有这样一种容器 它存放的不是文本 数值 而是对象 对象的描述 类 接口 或者是提供对象的回调 通过这种容器 我们得
  • qt相关的demo集合

    自己写过的qt c 相关程序的demo集合 许多学习自网络中 很感谢大家的分享 源码地址 Qt与学习通页面 记录与Qt相关的代码 Gitee com 源码目录 echart简单应用 opencv图像处理 QSetting简单使用 QtAv播
  • 运维思考:Java进程管理规范

    需求 无论是在spring boot 还是spring cloud 项目中 随着应用的不断增多 JVM参数的统一管理的重要性就会凸显出来 否则你可能会遇到几个问题 Java进程出现性能问题 无GC日志支撑提供重要信息 OOM异常频发 无法通
  • JDK下载 JVM调优工具jvisualvm下载

    一 JDK JDK官网地址 二 visualvm visualvm官网 JDK8以及之前自带有有visualvm插件 JDK9以及之后就不自带 1 下载安装 官网下载解压后 在解压目录 etc visualvm conf设置JDK所在路径
  • 收藏

    点上方计算机视觉联盟获取更多干货 仅作学术分享 不代表本公众号立场 侵权联系删除 转载于 作者丨叶润源 来源丨https www yuque com yerunyuan ar9831 tsm0id Kfi4w 编辑丨极市平台 985人工智能
  • 【满分】【华为OD机试真题2023 JS】字符串解密

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 字符串解密 知识点数组字符串排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给定两个字符串string1和string2 string1是一个被加扰的字符串
  • 龙龙送外卖PTA

    龙龙是 饱了呀 外卖软件的注册骑手 负责送帕特小区的外卖 帕特小区的构造非常特别 都是双向道路且没有构成环 你可以简单地认为小区的路构成了一棵树 根结点是外卖站 树上的结点就是要送餐的地址 每到中午 12 点 帕特小区就进入了点餐高峰 一开
  • 每日一题:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    每日一题 给定一个整数数组 nums 找到一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 2020年11月20日 力扣 简单 最大子序和 一 题目描述 给定一个整数数组 nums 找到一个具有最大和的连续子数组 子数组最少
  • 云数据中心备份容灾设计方案

    导读 云计算中心 涵盖系统多 类型复杂 关键性程度不一 因此对于恢复目标也有不同的要求 针对不同恢复目标的业务采取不同的灾备技术 同时考虑到数据中心重要性 需要建立同城灾备数据中心 并规划异地灾备中心 实现两地三中心 云数据中心备份容灾设计
  • 云服务器怎么设置数据库文件,服务器上数据库文件共享设置

    服务器上数据库文件共享设置 内容精选 换一换 本章节适用于MRS 3 x之前版本 Loader支持以下多种连接 每种连接的配置介绍可根据本章节内容了解 obs connectorgeneric jdbc connectorftp conne
  • 【2023】华为OD机试真题Java-题目0202-去除多余空格

    去除多余空格 题目描述 去除文本多余空格 但不去除配对单引号之间的多余空格 给出关键词的起始和结束下标 去除多余空格后刷新关键词的起始和结束下标 条件约束 不考虑关键词起始和结束位置为空格的场景 单词的的开始和结束下标保证涵盖一个完整的单词
  • 计算机无法访问外部网络怎么解决方案,局域网无法访问另一台计算机的解决方案...

    从网络邻居中打开工作组时显示 MSHOME 无法访问 您可能没有权限使用网络资源 请与这台服务器的管理员联系以查明您是否有访问权限 此工作组的服务器列表当前无法使用 可以PING通另一台 另一台可以访问这台 服务设置也差不多 本地安全策略来
  • 数据结构与算法C++实现(10)之哈希表

    一 概念 散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系f 是的每个关键字key对应一个存储位置f key 查找时 根据这个对应的关系找到给定值key的映射f key 若查找集合中存在这个记录 则必定在f key 的位置上
  • IHO s-57(ENC)

    IHO S 57 ENC 目前 IHO S 57支持读访问 S 57驱动模型中 S 57数据支持所有的S 57特征数据 S 57对象被翻译成专题数据 S 57几何对象被自动收集 被翻译成几何特征 s 57 Reader依靠两个支持文件 s5
  • Edge浏览器以图搜图插件Search by Image安装与使用

    1 安装插件 2 以图搜图 右键 gt Search by Image gt Yandex 3 成功搜图 4 如果Yandex打不开 看这个文章 Windows系统无法访问 yandex com 解决方案
  • springboot调整请求头大小_解决Springboot get请求是参数过长的情况

    问题原因 Springboot get请求是参数过长抛出异常 Request header is too large 的问题 错误描述 java lang IllegalArgumentException Request header is
  • python3.8+pytorch 1.7.0+cuda10.2+cuDNN

    本文是在电脑中直接安装cuda10 2的过程 如果是要在anaconda环境中安装的话 可以直接只在虚拟环境中使用命令进行安装 用以下链接中的过程即可 在anaconda虚拟环境中安装pytorch和cuda教程 安装过程中看到的不错的教程
  • CVE-2022-30190复现及原理

    今天各厂商都在发布CVE 2022 30190的安全通告 作为一个与Office有关的RCE漏洞 其原理并不复杂 但利用非常简单无脑甚至不用点击 以后钓鱼肯定要经常用 这里简单复现分析下 环境 Win10 0 16299 32位 Micro
  • OLED透明屏原彩优势和特点解析:开创显示技术新时代

    OLED透明屏 原彩作为一项领先的显示技术 正以其卓越的性能和创新的设计特点引起广泛关注 本文将通过深入探讨OLED透明屏 原彩的优势和特点 应用领域 技术发展以及未来前景等方面内容 并结合具体数据 报告和行业动态 为读者提供专业可信的信息
  • java设置httpheaders_HttpClient 请求添加Header头部信息

    HTTP消息可以包含许多描述消息属性的标头 例如内容长度 内容类型 授权等 HttpClient提供了检索 添加 删除和枚举标头的方法 在下面的教程中 我们将演示如何将自定义HTTP头添加到HttpClient和Http请求方法 Maven