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 -

package com.yiibai.httpdemo;

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 < 300) {

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"

}

}

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

java 自定义http头_HttpClient自定义HTTP头相关推荐

  1. ajax中设置请求头和自定义请求头

    回到文章总目录 1.创建在testfour文件夹并在这个文件夹里面 2.创建post.html文件 3.创建server.js文件 本篇文章使用了鼠标移动至方框则自动发送请求至服务端 通常设置请求头 ...

  2. Java操作poi导出Excel自定义字体颜色

    Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...

  3. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

  4. java自定义jsp标签_Javaweb自定义jsp标签

    自定义标签 用户定义的一种自定义的jsp标记,当一个含有自定义标签的jsp页面被jsp引擎编译成Servlet时,tag标签被转化成了对一个称为标签处理类的对象的操作.于是当jsp页面被jsp引擎转化 ...

  5. 五十八、深入了解 Java 中的注解和自定义注解

    @Author:Runsen @Date:2020/7/9 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  6. java web 自定义标签_JavaWeb学习——自定义标签

    自定义标签 一.自定义标签概述 使用标准JSP访问.操作JavaBean,是实现展现(HTML)与业务实现(Java代码)分离的第一步.然而,标准方法功能不够强大,以至于开发者无法仅仅使用它们开发应用 ...

  7. java 自定义注释_带有自定义注释的Java注释教程

    java 自定义注释 Java批注提供有关代码的信息,并且它们对其批注的代码没有直接影响. 在本教程中,我们将学习Java注释,如何编写自定义注释 ,注释用法以及如何使用反射来解析注释 . 注释是在J ...

  8. java自定义标签遍历_自定义标签 - CarlDing的个人页面 - OSCHINA - 中文开源技术交流社区...

    EL的不足,由JSTL来加强  -> 自定义标签来实现. 1:自定义标签 1:自定义标签也是类. 2:让用户在JSP页面使用,不引用Java代码的情况下,调用Java代码. 2:标签开的类的继承 ...

  9. 基于Java的Minecraft游戏后端自定义插件 的Java实践项目整理

    Minecraft_Plugin 1.项目概述 2.系统设计 3.功能模块成果展示 4.个人总结 1.项目概述 1.1 项目简介 小组准备编写一个具有武器战斗,道具收集.互动社交和任务悬赏四大系统的聚 ...

最新文章

  1. 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...
  2. 将DVD刻录盘变成移动硬盘
  3. pytorch笔记——简易回归问题
  4. 硬核!一套基于SpringBoot + Vue 的开源物联网智能家居系统!
  5. 史上最详细阿里云Docker下载运行Zookeeper!!!!
  6. Context node attribute expand trouble shooting guide
  7. 【ArcGIS遇上Python】窗体版Python批量处理地理数据--栅格裁剪
  8. windows下有趣的小玩意
  9. 击鼓传花c语言编程题,c语言-第5章 循环程序设计.ppt
  10. wps电脑版_用好WPS这5个远程协同功能,“宅”家办公啥都不耽误,工作全搞定...
  11. java 传绝对路径无效_【Java并发005】原理层面:volatile关键字全解析
  12. 遇到事情不计较就是善待自己
  13. android 按钮顶级效果_Android 中按钮的点击效果
  14. 听指令的小方块(一)
  15. java冒泡排序菜鸟教程_排序算法总结 | 菜鸟教程
  16. 摄动法在计算机中的应用,H理论在计算机控制系统摄动模型中的应用研究
  17. 计算机网络编程(转载)
  18. Android 系统(44)---多语言
  19. 深度学习笔试、面试题 二
  20. 使用dd命令克隆整个系统

热门文章

  1. 关于子对话框的创建与销毁
  2. NorthWest University - Medical Engineering
  3. wireshark一招掌握如何过滤想要的数据再也不用查找天书般的说明文档
  4. 查看使用的那个USB口和开发板通讯
  5. LFS-Git命令行向Github上传大文件
  6. npm package.json中的dependencies和devDependencies的区别
  7. windows调试器设置
  8. gateway集成sentinel实现网关限流
  9. C++STL理论基础
  10. 操作系统(十七)调度算法(二)