我们正在使用从python到golang的服务重写旧的集成。此服务使用自定义状态代码。例如,状态代码是8000.但是当我试图得到响应时,它给我的错误是“格式错误的HTTP状态代码”。有人可以帮我解决这个问题。通过代码并发现以下代码段如果状态代码的长度不是3,则抛出错误。
if len(statusCode) != 3 {
return nil, &badStringError{"malformed HTTP status code", statusCode}
}
编辑: 我理解HTTP状态的RFC标准是3位数。但我正在重新整合银行系统的遗留代码。所以我不能/无法访问更改服务的实现。
为了提供更多上下文,python的http库没有进行此验证。 (我不是说一种语言优于另一种语言,所以请不要比较语言/库)所以想知道是否有任何方法可以绕过这种特定的验证。 在此先感谢您的理解..
答案 0 :(得分:1)
来自RFC 2616:
Status-Code元素是一个3位整数结果代码 尝试
你所拥有的是无效的HTTP。如果您可以直接获取套接字,则可以尝试解析原始TCP数据。
答案 1 :(得分:1)
如果您希望可以使用标准代码来获取一般信息(确定,客户端错误,服务器错误等)以及在有效负载中传输的自定义应用程序代码,以获取更多详细信息。