post 请求 argument type mismatch_HTTP的请求与响应

平时我们都在用浏览器访问网页,不管是pc端还是移动端,其实都是我们的浏览器(客户端)在与服务器进行交流,而HTTP 的作用就是指导浏览器和服务器如何进行沟通。那么http请求的内容包括哪些?响应的内容又包括哪些?怎么用git去查看浏览器的请求与响应?

http请求

今天要说的http请求包含三种方式,分别是get请求、post请求与post带数据请求三种。

1.get请求(以访问百度为例):

0aba83546a0f10cb569e025d4c924344.png

上图我用了curl命令行创造了一个请求,并且服务器给了我一个响应,那么现在我就对上图中的请求与响应作出相应的解释。

首先跟大于号一排对应的是请求,相反,跟小于号一排对应的是响应。

我们发出的请求是:

1>GET / HTTP/1.1

GET / HTTP/1.1:我们拆解一下GET / HTTP/1.1,GET:代表请求方式,/:代表路径,因为http://baidu.com后面没有带路径,所以系统帮我们自动加上了,HTTP:代表用的是HTTP协议,1.1代表的是版本号。总体意思就是“我要访问的是根目录,我使用的协议是HTTP,版本号是1.1”。

2> Host: 百度一下,你就知道(www.baidu.com)

告诉百度服务器我们要访问的域名是(http://www.baidu.com)。

3> User-Agent: curl/7.55.0

当前发起curl请求软件的版本号是7.55.0。

4> Accept: */*

告诉百度服务器我接受服务器给我的所有内容。

我们收到的响应是:

< HTTP/1.1 200 OK

使用的协议是HTTP,当前版本是1.1,200代表的是浏览器反馈给你的状态码,由于浏览器状态码太多,你可以看百度(维基),ok就是ok的意思。

< Content-Length: 2381

返回的字符长度是2381个字节。

< Content-Type: text/html

返回的格式是html。

< Date: Thu, 11 Jul 2019 14:26:27 GMT

返回的日期。

2.POST带数据请求:

我们跟上次请求一样,只不过这次换成了post请求。

运行 curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "百度一下,你就知道(www.baidu.com)"之后,服务器给了我们以下响应。

a0fdae0ee64ae5a5737ed5b3d5d828db.png
用post发起带数据请求

f2355b0ae32093a18cf90d30824ad913.png

我们发出的请求是:

>POST / HTTP/1.1

跟get请求类似只不过请求方式变成了post。

> Host: 百度一下,你就知道(www.baidu.com)

同上。

> User-Agent: curl/7.55.0

同上。

> Accept: */*

同上。

> Frank: xxx

这个可以写也可以不写,没有实际意义。

> Content-Length: 10

因为我们带了 1-0 10个字符串向服务器发起了请求。

> Content-Type: application/x-www-form-urlencoded

请求数据的格式。

我们收到的响应是:

< HTTP/1.1 302 Found

同上。

< Content-Length: 17931

返回的字符长度是17931个字节。

< Content-Type: text/html

返回的格式是html。

< Date: Thu, 11 Jul 2019 15:17:49 GMT

响应返回的日期。

3.POST不带数据请求:

ac75d434dadbe2800466ddae2d3cc8c8.png
用post发起不带数据的请求

a10ee631e5c46a445f5057eeeb381a10.png

post不带数据请求跟get请求相类似,只是请求方式不一样,但是GET跟POST存在这本质区别,GET是从指定的资源请求数据,而POST向指定的资源提交要被处理的数据.但是这两种在向server请求或者响应时是没什么区别的。

1.用Chrome开发者工具查看 HTTP 请求内容(还是以访问百度为例)

8b8eaa131fa9e39aafc07d013d162429.png
需要带数据请求服务器

273d880e1fb82e8a40c9f84679ce0eed.png

4807ebc805c9b8b043e20200394c44c7.png
由于这个是get请求所以没有第四部分

5567863be223d8bd4d381fd0ae033cb0.png
post请求

4d014d146b6e01d77ea7fce2d48e74f7.png
post带数据请求第四部分

在chrome调试工具里我标注了请求有四部分

  1. 第一部分: 动词路径协议/版本
  2. 第二部分: Content-Type: application/x-www-form-urlencoded
    第二部分: Host: http://www.baidu.com
  3. 第三部分永远都是一个回车(n
  4. 要上传的数据

注意点

  1. 第三部分永远都是一个回车(n
  2. 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  3. 这里的路径包括「查询参数」,但不包括「锚点」
  4. 如果你没有写路径,那么路径默认为 /
  5. 第 2 部分中的 Content-Type 标注了第 4 部分的格式
  6. 用get也能带数据上传服务器,只是服务器会不接收!
  7. 第四部分有数据就是数据,没数据就是空。

响应有四部分

1 协议/版本号状态码状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: xxx长度
2 Content-Type: text/html
3
4 要下载的内容第 2 部分中的 Content-Type 标注了第 4 部分的格式第 2 部分中的 Content-Type 遵循 MIME 规范

注意点

  1. 第 2 部分中的 Content-Type 标注了第 4 部分的格式
  2. 第 2 部分中的 Content-Type 遵循 MIME 规范

git crul命令:

首先我们看一下完整的crul命令解释

e6e7e7df1b9cf7bfc873d8106001e584.png

d6f894fa959cfa6d5dee8f5f2e28efbb.png
curl -s -v -H &quot;xxx: yyy&quot; -- &quot;www.baidu.com&quot;

8e1da41f696ae9f511489053b60e38ef.png
curl -s -v &quot;xxx: yyy&quot; -- &quot;www.baidu.com&quot;

59a45e02036175cd13229d2bb564bb08.png
curl -s -H &quot;xxx: yyy&quot; -- &quot;www.baidu.com&quot;

717e494f1a63b5d1831c427392c46070.png
curl -v -H &quot;xxx: yyy&quot; -- &quot;www.baidu.com&quot;

eab5b121e7bdc7a6f2986d9716a67a4d.png
curl -s -v -H -- &quot;www.baidu.com&quot;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"argument type mismatch"是Java中的异常信息,表示方法的参数类型不匹配。通常情况下,这意味着在方法调用时传递了错误的参数类型,与方法的声明不匹配。这可能是由于传递的参数类型与方法所期望的参数类型不一致,或者参数数量不正确等引起的。要解决这个问题,您需要检查方法的参数类型和数量,并确保传递的参数与方法的要求相匹配。引用和引用提到了这个异常信息,指出在程序中出现了参数类型不匹配的情况。引用则是描述了遇到这个异常后的一种思考过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java异常————argument type mismatch](https://blog.csdn.net/weixin_50991263/article/details/124238698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [IllegalArgumentException :argument type mismatch](https://blog.csdn.net/qq_61956639/article/details/124023667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值