php curl status code,php curl 307错误

php curl status code,php curl 307错误在发post的请求的时候,使用php的curl发起了一个post请求,但是发现返回了307错误。什么是307维基百科中这样写:307TemporaryRedirect是HTTP协议中的一个状态码(StatusCode)。可以理解为一个临时的重定向。但该响应代码与302重定向有所区别的地方在于,收到307响应码后,客户端应保持请求方法不变向新的地址发出请求。(302请求则重定向到新地址时,客户…

大家好,欢迎来到IT知识分享网。php curl status code,php curl 307错误

在发post的请求的时候,使用php的curl发起了一个post请求,但是发现返回了307错误。

什么是307

维基百科中这样写:

307 Temporary Redirect是HTTP协议中的一个状态码(Status Code)。可以理解为一个临时的重定向。

但该响应代码与302重定向有所区别的地方在于,收到307响应码后,客户端应保持请求方法不变向新的地址发出请求。(302请求则重定向到新地址时,客户端必须使用GET方法请求新地址。)

调试过程

首先看后端是否接收到前端传过去的正确的数据,包含url,以及post body中携带的数据。

使用postman发起同样的接口调用,发现调用成功

使用postman将步骤2中的请求转化为原始的curl请求,发现请求失败。

原始curl请求如下:

curl -X POST \

‘http://xxx.xx.xx.xxx:8988/api/v2/api/api/?username=xxx&password=xxx’ \

-H ‘Accept: */*’ \

-H ‘Accept-Encoding: gzip, deflate’ \

-H ‘Cache-Control: no-cache’ \

-H ‘Connection: keep-alive’ \

-H ‘Content-Length: 40’ \

-H ‘Content-Type: application/json’ \

-H ‘Host: xxx.xx.xx.xxx:8988’ \

-H ‘Postman-Token: 8d4926ce-0c9e-4253-941a-e9ede9ceb4cf,367c2906-e3a8-415d-b8d4-fbeb39c3dd30’ \

-H ‘Referer: http://xxx.xx.xx.xxx:8988/api/v2/api/api/?username=xxx&password=xxx’ \

-H ‘User-Agent: PostmanRuntime/7.15.2’ \

-H ‘cache-control: no-cache’ \

-d ‘{“feed”:[{“area”:”全国”,”isp”:”bgp”}]}’

但是并没有找到错误的原因。于是换了个思路

开始疯狂debug php 的curl请求,谷歌307错误的情况。无果。。。

开始转换思路:对比接口开发者调试时发起的调用成功的curl请求,发现url有一处不同。问号前面没有“/”

// 成功的curl

[http://xxx.xx.xx.xxx:8988/api/v2/api/api?username=xxx&password=xxx]

// 失败的curl

[http://xxx.xx.xx.xxx:8988/api/v2/api/api/?username=xxx&password=xxx]

在代码中更改url,发现成功调用~

一些思考

为什么一开始有“/”postman也调用成功了呢?

很可能是postman做了一些兼容和容错处理吧。

参考文献

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23007.html

(0)
上一篇 2023-12-18 08:45
下一篇 2023-12-19 21:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信