簡體   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