繁体   English   中英

C ++套接字HTTP发布请求问题

[英]C++ Sockets HTTP Post Request Problems

我正在尝试发布请求,但遇到一些问题。

如果我像这样键入CPUKey和Hash,我可以发送请求并获得响应

GetModuleHash(XEXHASH);
CharStr2HexStr(XEXHASH, HashBuffer, 10);
if (!ServerConnect(SERVER, 80))
    return false;
DebugPrint("Connection Established");
char* Test = LinkChar("POST /projects/xenium-mw3-menu/auth.php HTTP/1.1\nHost: www.xeniummodding.com\nContent-type: application/x-www-form-urlencoded\r\nContent-length: 65\r\n\nCPUKey=%s&hash=%s\r\nConnection: close", "12121212121212121212121212121212", "00000000000000000000");
NetDll_send(XNCALLER_SYSAPP, sock, Test, strlen(Test), 0);
NetDll_recv(XNCALLER_SYSAPP, sock, ReturnBuffer, sizeof(ReturnBuffer), 0);
NetDll_closesocket(XNCALLER_SYSAPP, sock);
if (strstr(ReturnBuffer, "Auth Result: 1"))
{
    DebugPrint("Data Recieved: 1");
    return true;
}
else
{
    DebugPrint("Data Recieved: 0");
    return false;
}

char *测试= LinkChar(“ POST /projects/xenium-mw3-menu/auth.php HTTP / 1.1 \\ n主机:www.xeniummodding.com \\ n内容类型:application / x-www-form-urlencoded \\ r \\ nContent-长度:65 \\ r \\ n \\ nCPUKey =%s&hash =%s \\ r \\ nConnection:close“,” 12121212121212121212121121121212“,” 00000000000000000000“);

可以,但是当我用CPUKeyBuffer和HashBuffer实际替换121212121和000000时,它不发送数据。 我不明白我在做什么错。 谁能告诉我我遇到的问题?

PS LinkChar基本上是sprintf,但是返回缓冲区,并且在我使用的其他所有设备上都可以正常工作

谢谢

您对字符串分隔符(标头之间以及起始行和第一个标头之间)不准确:\\ r \\ n必须无处不在(根据RFC2616,CR LF)。 您有时使用\\ n,有时使用\\ r \\ n \\ n。 没有正文的请求必须以\\ r \\ n \\ r \\ n结尾(最后一个标头和空字符串)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM