You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++实现HTTP/2 POST请求遭拒,返回505错误求助

问题:C++模拟Binance API POST请求失败,返回505错误

目标Curl命令

需要模拟的Curl命令:

curl -H "X-MBX-APIKEY: dummy_one" -X POST 'https://api.binance.com/api/v3/order?hello'

Curl的正常响应与请求日志

该Curl请求的响应:

{"code":-2014,"msg":"API-key format invalid."}

Curl verbose日志显示的发送内容:

> POST /api/v3/order?hello HTTP/2
> Host: api.binance.com
> user-agent: curl/7.81.0
> accept: */*
> x-mbx-apikey: dummy_one
> 

我的C++实现代码

编写的C++代码片段:

char* write_buf = "POST /api/v3/order HTTP/2\r\n"
                  "Host: api.binance.com\r\n"
                  "user-agent: curl/7.81.0\r\n"
                  "accept: */*\r\n"
                  "X-MBX-APIKEY: dummy_one\r\n"
                  "content-length: 5\r\n"
                  "content-type: application/x-www-form-urlencoded\r\n"
                  "hello";

if(BIO_write(bio, write_buf, strlen(write_buf)) <= 0)
{
    // 错误处理代码
}

遇到的问题

请求被拒绝,返回:

HTTP/1.1 505 HTTP Version Not Supported

猜测可能和未转义空格有关,但不确定具体问题。SSL连接正常,GET请求可正常运行,问题应该出在POST请求的格式上。


问题分析与修正方案

你的代码存在几个关键格式错误,导致服务器无法正确解析请求:

  1. 请求行缺失查询参数
    Curl请求行是POST /api/v3/order?hello HTTP/2,但你的代码里写的是POST /api/v3/order HTTP/2,漏掉了?hello查询参数,请求路径不匹配。

  2. 请求头与请求体的分隔错误
    HTTP协议要求所有请求头结束后必须加一个空行(\r\n\r\n),用来分隔请求头和请求体。你的代码写完最后一个请求头后直接接了hello,没有这个空行,服务器无法识别头和体的边界。

  3. 多余且错误的请求头设置
    目标Curl请求没有发送任何请求体,所以不需要content-length和content-type这两个头,多余的头会干扰服务器解析;同时你设置的content-length:5和实际内容也不匹配。

  4. HTTP版本兼容性问题
    505错误也可能是因为服务器不支持HTTP/2,可尝试将请求行中的HTTP/2改为HTTP/1.1。

修正后的代码示例

char* write_buf = "POST /api/v3/order?hello HTTP/1.1\r\n"
                  "Host: api.binance.com\r\n"
                  "user-agent: curl/7.81.0\r\n"
                  "accept: */*\r\n"
                  "X-MBX-APIKEY: dummy_one\r\n"
                  "\r\n"; // 空行分隔请求头与请求体(无请求体时仅需空行)

if(BIO_write(bio, write_buf, strlen(write_buf)) <= 0)
{
    // 错误处理代码
}

额外说明

如果后续需要发送请求体,需确保:

  • 请求头结束后必须添加\r\n\r\n
  • Content-Length的值严格等于请求体的字节数
  • 根据请求体类型正确设置Content-Type

内容的提问来源于stack exchange,提问作者bicoi77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:46:08