java post 请求 设置head

Java发送Post请求,获取返回的请求头Header 本文实例讲述了JAVA获取HTTP请求头的方法。分享给大家供大家参考,具体如下: 在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段; 可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘泥于标准HTTP定义的头字段。 代码如下: import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONOb 阅读详情

第一种:

     /**
     * url: 请求地址
     * param: 请求参数 [{'key1':'value1','key2':'value2'},{'key1':'value3','key2':'value4'}]  
     * header 设置header
     * 
     */
	public static String sendPost(String url, String param, Map<String, String> header) throws UnsupportedEncodingException, IOException {
	        PrintWriter out = null;
	        BufferedReader in = null;
	        String result = "";
	        URL realUrl = new URL(url);
	        // 打开和URL之间的连接
	        URLConnection conn = realUrl.openConnection();
	        //设置超时时间
	        conn.setConnectTimeout(5000);
	        conn.setReadTimeout(15000);
	        // 设置通用的请求属性
	        if (header!=null) {
	            for (Entry<String, String> entry : header.entrySet()) {
	                conn.setRequestProperty(entry.getKey(), entry.getValue());
	            }
	        }
	        conn.setRequestProperty("accept", "*/*");
	        conn.setRequestProperty("connection", "Keep-Alive");
	        conn.setRequestProperty("user-agent",
	                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
	        conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
	        // 发送POST请求必须设置如下两行
	        conn.setDoOutput(true);
	        conn.setDoInput(true);
	        // 获取URLConnection对象对应的输出流
	        out = new PrintWriter(conn.getOutputStream());
	        // 发送请求参数
	        out.print(param);
	        // flush输出流的缓冲
	        out.flush();
	        // 定义BufferedReader输入流来读取URL的响应
	        in = new BufferedReader(
	                new InputStreamReader(conn.getInputStream(), "utf8"));
	        String line;
	        while ((line = in.readLine()) != null) {
	            result += line;
	        }
	        if(out!=null){
	            out.close();
	        }
	        if(in!=null){
	            in.close();
	        }
	        return result;
	    }

第二种:

/**
     * url: 请求地址
     * param: 请求参数 [{'key1':'value1','key2':'value2'},{'key1':'value3','key2':'value4'}]  
     * 
     */
    public static void postParams(String url, String param) {
    	// 获取连接客户端工具
        CloseableHttpClient httpClient = HttpClients.createDefault();
        String entityStr = null;
        CloseableHttpResponse response = null;
        try {
            // 创建POST请求对象
            HttpPost httpPost = new HttpPost(url);
            // 创建请求参数
            StringEntity entityParam = new StringEntity(param, Charset.forName("UTF-8"));
            httpPost.setEntity(entityParam);
            // 浏览器表示
            httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");
            httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");
            // 传输的类型
            httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
            
            httpPost.addHeader("accept", "*/*");
            httpPost.addHeader("connection", "Keep-Alive");
     
            // 执行请求
            response = httpClient.execute(httpPost);
            // 获得响应的实体对象
            HttpEntity entity = response.getEntity();
            // 使用Apache提供的工具类进行转换成字符串
            entityStr = EntityUtils.toString(entity, "UTF-8");
     
        } catch (ClientProtocolException e) {
            System.err.println("Http协议出现问题");
            e.printStackTrace();
        } catch (ParseException e) {
            System.err.println("解析错误");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IO异常");
            e.printStackTrace();
        } finally {
            // 释放连接
            if (null != response) {
                try {
                    response.close();
                    httpClient.close();
                } catch (IOException e) {
                    System.err.println("释放连接出错");
                    e.printStackTrace();
                }
            }
        }
        // 打印响应内容
        System.out.println(entityStr);
    }

记录一下,以便下次使用

HttpURLConnection之POST请求 不仅从服务器读取数据,还有向服务器写入数据的功能,是双向交互,即通过获取到输入输出流来进行相关的数据写入和读取。这个类的使用并不陌生,通常我们都是通过这个类来封装一个请求后台数据的方法,暴露给外部使用。另因我们使用的是追踪流方式,上面的抓包内容中也看见了响应的消息。方式的请求参数放置在请求体,也就是在抓包请求报文的空行之后。回顾我们所使用的请求参数方式,无论是。三个部分构成:请求方法、请求接口和协议版本。支持多种请求方法,且在该类中有完整的状态码说明。也就是紧接着的空行之上的键值对参数。 阅读详情

相关推荐

【低空经济】森林火情高精度监测与早期预警无人机巡护方案

在全球范围内,森林火灾已成为一个严重的生态和社会问题。它不仅对自然生态系统造成了毁灭性的影响,还对人类的生命财产安全构成了极大的威胁。根据国际森林发展组织的统计,全球每年因森林火灾造成的经济损失高达数百亿美元,甚至在某些年份,火灾损失占到某些国家国民经济总量的相当一部分。因此,开展高效的森林火情监测与早期预警工作显得尤为重要。随着科技的发展,无人机作为新兴的监测工具,以其高效、灵活和经济的特点在森林火灾监测领域展现出了巨大的潜力。

2502_92579126的博客 1212

java post请求怎么自定义header

【代码】java post请求怎么自定义header。

weixin_40918145的博客 3281

同步辐射材料科学应用指南:从XAFS原位实验到数据处理

材料结构分析是材料研究的核心环节,但传统实验室X射线受限于能量固定、亮度不足,往往难以回答原子局域配位、非晶结构及动态演变等关键问题。同步辐射光源以高通量、连续可调、偏振可控及脉冲时间结构等特性,将材料表征从静态观察推进到原位动态追踪层次。基于X射线吸收精细结构谱(XAFS)、原位实验、X射线衍射与散射、微区成像等技术,研究人员可实现元素选择性分析、近邻原子环境解析及真实工况下的结构演变监测。本文从技术原理出发,覆盖实验方案设计、样品制备、现场对光、数据处理与常见故障排查,并结合典型应用场景,为材料科学领域

weixin_32612263的博客 166

java get,post请求带多个header参数,亲测有效

废话不多说,看代码 /** * get请求(用于key-value格式的参数,且带有header请求头) * * @param url * @param paramMap 请求的参数map<key,value>键值对 * @param headerMap 请求的参数map<key,value>键值对 * @return */ public static JSONObject doGet(St...

songjiweiliu的博客 7998

VASP+机器学习快速收敛AIMD

本文介绍了如何利用VASP结合机器学习技术快速收敛AIMD(从头算分子动力学)模拟。首先,通过训练机器学习力场,生成关键文件如ML_ABN(包含结构数据集)、ML_FFN(存储回归结果)和ML_LOGFILE(记录训练日志)。接着,配置INCAR文件以设置计算参数,包括并行化、分子动力学和机器学习相关参数。KPOINTS文件用于定义K点网格。计算完成后,备份CONTCAR文件作为后续模拟的初始结构。最后,利用训练好的力场文件进行纯机器学习力场分子动力学模拟,并提交任务执行。

qq_44812865的博客 1405

MiniOSD DIY记

最近迷上了航模,研究了很多东西,感觉路走的长了还是适当要停下脚步休息下总结下。 这次DIY的是一块OSD设备,主要用于航模图传的叠加显示,原理也很简单就是atmel atmega328p+MAX7456芯片,网上卖的成品基本上都是一个原理图。 原理图 我按照我自己的需要做了适当的更改,去掉了DC-DC电路,直接用5V输入,因为摄像头都是5V的,所以DC-DC不是很有必要,体积上更加小了点, 打...

memoff的博客 8524

关于post请求体参数的三部分:body,header,query

关于post请求体参数的三部分:body,header,query。 boby:接收参数时,用@RequestBody注解注入(json数据注入到类的对象属性中); query:接收参数时,在不用注解的情况下,一般默认为query部分 header:接收参数时,用@RequestHeader注解注入 例子如下: body案例 @ApiLog("创建缴费账户信息(缴费分组)")...

yunxuantu的博客 6万+

Allegro Design Entry CIS 与 OrCAD Capture CIS:PCB设计工具链中的双雄对决

本文深入对比了Cadence旗下两大原理图设计工具Allegro Design Entry CIS与OrCAD Capture CIS。Allegro Design Entry CIS源自Concept HDL,定位高端,强调自顶向下的层次化设计和与Allegro PCB Editor的无缝约束管理,适合大型复杂系统及团队协作。OrCAD Capture CIS则以其出色的易用性、广泛的兼容性和强大的CIS数据库功能著称,是中小型项目及跨工具链协作的通用选择。文章从历史渊源、核心功能、适用场景等多维度剖析,

bush的博客 487

java 发起post请求,设置header,发送form表单

Java可以使用HttpClient类来发起post请求,设置header,发送form表单。使用HttpClient的post方法,可以指定要发送的数据,以及指定header头信息。例如:HttpPost post = new HttpPost(url); List params = new ArrayList(); params.add(new BasicNameValuePair("para...

weixin_35757531的博客 2344

机器视觉应用工程师职位深度解析与面试指南

广东奥普特科技招聘机器视觉应用工程师,要求大专以上理工科专业背景,熟悉C/C++或PLC编程,具备自动化设备调试经验。岗位职责包括视觉项目方案评估、系统安装调试、售后技术支持及异常处理,需接受外派出差。该职位面向专业对口的应届生或实习生,强调动手能力、沟通技巧和吃苦耐劳精神。机器视觉工程师需掌握图像处理算法、硬件配置等核心技术,在工业自动化领域具有良好发展前景。求职者应注重编程能力和实践经验的积累,以胜任这一技术密集型岗位。

郑伟强dev的专栏 433

9篇6章7节:SEER 数据库的2025年数据变量多条件组合选择(2026年版)

软件中的病例筛选功能通过CaseSelection界面实现精准研究队列构建。该界面允许用户通过变量选择(Variable)、运算符定义(Operator)和取值设定(Values)三步操作创建筛选条件,支持种族、分期等关键变量的多条件组合。

MD Code 1455

Java笔记——post 请求 设置head

记录一下,以便下次使用。

a25847a的博客 522

6、云计算中的多核技术:架构、并行性与局限性

本博文深入探讨了云计算中多核技术的架构、并行性及其局限性。文章详细介绍了多核处理器的基础概念、并行硬件和软件的设计原理,并对硬件和软件并行性进行了分类和分析。同时,文章讨论了多核架构在实际应用中面临的挑战,如功率墙、内存墙和ILP墙等问题,并提出了应对策略。此外,还总结了多核技术在高性能计算、实时处理和云计算等领域的应用机遇。文章旨在帮助读者更好地理解多核技术的关键问题,并为未来的技术探索提供方向。

java5的博客 122

Java工具类——Http请求工具类

package com.runan.utils; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.ne...

RobinsStruggle的博客 3299

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HttpclientUtil4 的get、put、post、delete、Patch、options、head

添加maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.4</version> </dependency> 代码 import org.apache.commons.la

xjxjin的博客 420

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于JAVA原生HTTP请求工具类 httphelper

原文地址;http://lushuifa.iteye.com/blog/2313896   1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import ja...

weixin_33777877的博客 467

java调用http接口没有返回值_java使用Http调用第三方接口,输入链接,获取返回值...

1 importorg.slf4j.Logger;2 importorg.slf4j.LoggerFactory;3 import java.io.*;4 importjava.net.HttpURLConnection;5 importjava.net.URL;6 importjava.util.Map;7 importjava.util.Set;89 /**10 *@authorwusiwee...

weixin_29480231的博客 2118

软件测试 | 接口请求构造

Requests和Rest-Assured提供了很多HTTP请求构造方法。请求构建方法通过传入参数的方式,对发送请求进行定会化的配置,可以用不同的请求参数来应对不同的请求场景。常见的HTTP请求构建分别为GET、POST、PUT、Delete、head、options等。

慕漓的博客 230

java httputils_JavaHttpUtils工具类

JavaHttpUtils.javapackage com.imddysc.monitor.utils;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamW...

weixin_42445810的博客 1732

【代码积累】URLConnection test

import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Calendar; import net.sf.json

sinat_36263171的博客 433

Java开发必懂:HTTP请求方法全解析与实战

HTTP请求方法是Web开发中最基础也最容易被忽视的概念。它本质上是资源的“动词”,决定了客户端对服务器资源的操作意图。理解GET、POST、PUT、PATCH、DELETE等方法的语义与幂等性,是设计RESTful接口和排查联调问题的关键。在Java生态中,无论是Spring MVC的注解映射,还是RestTemplate、Apache HttpClient等客户端的请求发送,都要求开发者准确选用方法,否则就会遭遇405等错误。通过掌握方法的语义区别、幂等性原理以及各主流Java工具的使用姿势,开发者能够

weixin_26805597的博客 211

FHTTP: 一个简洁易用的java http框架

自制java http框架

森林雪兔的博客 788

java发送post请求添加请求头和JSON格式参数

import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.ht

qq_35356334的博客 7509

java post请求raw_前端以form-data方式/raw方式发送post请求的区别

POST请求@RequestParam:① 用来处理(前端)Content-Type: 为 application/x-www-form-urlencoded或者form-data编码的内容② 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;注意这里Headers里不能以application/json作为Cont...

weixin_30209121的博客 1895

java head 请求_接口请求的六种常见方式详解(get、post、head等)

一.接口请求的六种常见方式:1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)4、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类...

weixin_39633089的博客 3785

post 参数过多导致url过长,请求413 HEAD FULL

1.问题描述 java用apache httpclient请求目标应用,目标应用使用jetty+springMvc提供服务,请求的参数使用@RequestParam方式接收,故用a=A&b=B&c=C把请求参数直接追加到url方式调用目标应用,当参数过多时候,发现服务起jetty日志报“413 HEAD FULL”错误 解决方法一: google搜索对应错误关键字查找解决办法,发现...

u011656683的博客 7960
上一篇: linux 下删除乱码文件
下一篇: 纯js 导出excel
馒头爱代码
博客等级 码龄15年 38粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值