stm32使用CycloneTCP协议,HTTP 301/302响应问题
[复制链接]
我已经在STM32746G_Disc开发板上移植了RTX5+CycloneTCP。目前在使用http client,需要使用get方式请求:https://api.imjad.cn/cloudmusic/?keywords=song&id=210042&search_type=1,返回的响应为:
HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Fri, 16 Oct 2020 08:04:28 GMT
Content-Type: text/html
Content-Length: 182
Connection: keep-alive
Location: https://api.imjad.cn/cloudmusic/?keywords=song&id=210042&search_type=1
HTTP status code: 301
Body Data:
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>openresty</center>
</body>
</html>
通过查询得知301状态码的解释为:客户请求的文档在其他地方,新的URL在Loaction中给出,浏览器应自动访问新的URL。
查看响应报文中Location的URL,和我请求的URL是相同的,活见鬼了。
于是我用postman工具尝试请求URL,如下图所示:
这个是正确的响应结果。
我再使用网络调试助手NetAssist请求URL,结果如下图所示:
跟stm32的输出结果是一样的。
我用esp32也请求设个URL,返回的结果跟postman返回的结果是一样的,都是正确的。通过查看esp32代码,发现它的http client在协议中已自动完成重定向处理。我找查找了一遍CycloneTCP,没有发现对于响应为301/302,做处理的代码。
你们在使用LWIP时,是否有碰到这种情况,怎么解决的,求教下。附件是我的工程文件。
|