The HTTP header line [http Method: POST] does not conform to RFC 7230 and has been ignored

news/2024/11/30 0:31:37/

今天遇到一个比较基础,又没遇到过的问题。

这是使用httpClient调用接口的时候报的错误,错误就是http的请求头不正确。但是调用接口的是共用方法,以前都是正常用的,怎么这次就不行了呢?换了一个请求方法就好了。

话不多说,直接看解决方案。两个post请求的方法,总有一个是适合你的。根据自己项目的选择的httpClient版本进行选择不同的方法。

方法一:

public static String doPostJson(String url, String json,String token_header) throws Exception {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容httpPost.setHeader("HTTP Method","POST");httpPost.setHeader("Connection","Keep-Alive");httpPost.setHeader("Content-Type","application/json;charset=utf-8");httpPost.setHeader("x-authentication-token",token_header);StringEntity entity = new StringEntity(json);entity.setContentType("application/json;charset=utf-8");httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {throw e;} finally {try {if(response!=null){response.close();}} catch (IOException e) {e.printStackTrace();}}return resultString;
}

方法二:

public static String doPostForBooking(String urles, String json) throws Exception {HttpURLConnection connection = null;BufferedReader br = null;InputStream inputStream = null;// 存放数据StringBuffer sbf = new StringBuffer();try {// 创建远程url连接对象URL url = new URL(urles);// 通过远程url连接对象打开一个连接,强转成httpURLConnection类connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");// 允许写出connection.setDoOutput(true);// 允许读入connection.setDoInput(true);// 不使用缓存connection.setUseCaches(false);// 设置参数类型是json格式connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");connection.connect();String body = json;BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "utf-8"));writer.write(body);writer.close();// 通过connection连接,获取输入流int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {inputStream = connection.getInputStream();// 将输入流转换为字符串// 封装输入流is,并指定字符集br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));String temp = null;while ((temp = br.readLine()) != null) {sbf.append(temp);sbf.append("\r\n");}}} catch (Exception e) {e.printStackTrace();} finally {if (null != br) {try {br.close();} catch (Exception e2) {e2.printStackTrace();}}if (null != inputStream) {try {inputStream.close();} catch (Exception e2) {e2.printStackTrace();}}// 关闭远程连接connection.disconnect();}return sbf.toString().replaceAll("(\r\n|\n)", "");
}

http://www.ppmy.cn/news/416285.html

相关文章

BSS 7230 航空内饰材料阻燃性能测试

BSS 7230 航空内饰材料阻燃性能测试--标准名称 BSS 7230 Determination of flammability properties of aircraft materials BSS 7230 航空内饰材料阻燃性能测试 BSS 7230 航空内饰材料阻燃性能测试--适用范围 Scope: This standard describes the procedures …

Advanced-C.01.基础知识

C语言程序设计概述 一个简单句的C程序 #include <stdio.h> int main(){printf("This is a C program.\n");retrun 0; }C程序的执行过程 数据单位 bit&#xff1a;位&#xff0c;计算机中最小的数据单位Byte&#xff1a;字节&#xff0c;计算机中信息组织和存…

联想M490原装Win8系统改Win7系统的血泪史

折腾了近两天&#xff0c;终于弄好了。以后再也不敢胡乱的换系统了&#xff0c;要换系统也得先知道该注意什么事项&#xff0c;不能什么都不知道就瞎搞&#xff0c;不要自认为自己知道。自认为自己知道什么是种非常无知的想法&#xff01;还有就是&#xff0c;网上一些什么都不…

关于联想G40-30不能从win8改win7的解决方案(亲测有效果)!!!

2019独角兽企业重金招聘Python工程师标准>>> 过年期间帮忙表哥重装了一台奇葩联想的笔记本,各种配置设置过程莫名其妙的: 原文已经失效转载备注下: 前段时间看到本论坛上有关于“现在最新上市的win8.1笔记本怎么更改不成win7和xp的系统?”这样的一个帖子。装…

联想g510升级方案_联想G510更换固态、加装内存条、移机械硬盘至光驱位简记

本文的目的是对电脑型号为联想G510型号的朋友们更新硬件提供帮助,本人在具体操作的时候由于网络上有各式各样的教程,而且很多都有一定的误导性,白白浪费诸多时间。特简要记录了本人更新硬件时的主要工作流程。文中放了一些硬件型号,也并非为了打广告,只是说明这个硬件在本…

删除联想G470 oem备份隐藏分区的方法

方法如下&#xff1a; 命令提示符&#xff08;cmd&#xff09;中输入diskpart 然后rescan 然后 select disk 0 然后 list partition 然后select partition X(X为你的oem分区盘号) 最后 delete partition override 然后就可以了&#xff0c;但是不知道是我电脑的事还是这样…

联想T440怎么把原装Win8或Win10换成Win7系统

设置方法/步骤&#xff1a; 1、Thinkpad开机&#xff0c;按 F1进入Bios设置——Security——Secure Boot——默认设置是“Enable”要将其改为“Disable”&#xff01; 2、Startup——UEFI/Legacy Boot——UEFI Only改为Legacy Only&#xff01;注&#xff1a;-CSM Seupport 要变…

《转》【笔记1】关于联想g470更换intel5300网卡的问题

转自&#xff1a;http://blog.csdn.net/sodleave/article/details/43993173 为了毕设要求要使用intel wifi link 5300网卡&#xff08;半高卡&#xff09;。 买好装上后发现电脑无法识别硬件&#xff0c;即通不过bios。 &#xff08;显示&#xff1a;unauthorized wireless net…