微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

管理“HTTP/1.1 502 错误网关错误”

如何解决管理“HTTP/1.1 502 错误网关错误”

我需要在尽可能低的级别(即:在套接字级别)与远程 HTTP 服务器交互,因为我的目标是一个非常小的嵌入式系统,不支持更高级别的库(它是一个没有操作系统的裸机 uController并通过串行线路与 GSM 调制解调器通话;调制解调器对套接字有一些支持,但除此之外没有其他支持

基本需求是使用 POST 上传文件”。

我已经准备好了所有需要的 Header/Body 并且它“通常有效”。

问题是我随机收到“HTTP/1.1 502 Bad gateway error”响应,随着“文件”大小的增加,这种情况更有可能发生。

我理解这意味着反向代理前端(显然是 Nginx)和后端之间存在一些问题,但我完全无法控制这些(实际上我真的不知道除了可以从(光)探测)。

我目前的策略是打开一个普通套接字并发送以下序列(点代表二进制数据):

POST /path/to/websend.PHP HTTP/1.0
Host: host.domain.tld
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Type: multipart/form-data; boundary=AaB03x
Cache-Control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0
Pragma: no-cache
Accept: */*
Content-Length: <full_length>

--AaB03x
Content-disposition: form-data; name="IV"
Content-Type: application/data
Content-transfer-encoding: binary

000102030405060708090A0B0C0D0E0F
--AaB03x
Content-disposition: form-data; name="S_TXT_FILE"; filename="FILENAME_s.txt"
Content-Type: application/data
Content-transfer-encoding: binary

..............................................................
..............................................................
...... several 512byte blocks ................................
..............................................................
..............................................................
--AaB03x--

我可以做些什么来提高可靠性? 我已经多次重试并且这确实有效,但有时我需要重试六次或更多次才能得到肯定的答案(200 OK)。

请注意,我在 rety 上发送了完全相同的序列,并且它成功了......最终。

我需要发送两部分,因为内容是加密的,第一部分是需要的“初始化向量”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。