我注意到这个问题已经被问过很多次了,但似乎没有一个解决方案适用于我。在继续之前,我将为您发布一些代码:
// Await the response and stream it to the buffer, with a physical limit of 1024 ASCII characters
stringstream input;
char buffer[4096*2];
while (recv(sock, buffer, sizeof(buffer) - 1, MSG_WAITALL) > 0)
input << buffer;
input << '\0';
// Close the TCP connection
close(sock);
freehostent(hostInfo);
这是我的要求:
string data;
{
stringstream bodyStream;
bodyStream
<< "POST /api/translation/translate HTTP/1.1\n"
<< "Host: elfdict.com\n"
<< "Content-Type: application/x-www-form-urlencoded\n"
<< "Content-Length: " << (5 + m_word.length())
<< "\n\nterm=" << m_word;
data = bodyStream.str();
}
cout << "Sending HTTP request: " << endl << data << endl;
我对这种编程非常陌生(并且堆栈溢出 - 宁愿将它拖出并将我的头撞到墙上,直到我自己解决问题但我在这里迷路了!)并且非常感谢帮助找出为什么需要这样长!我已经研究过将其设置为非阻塞,但在使其按预期工作时遇到了问题。虽然也许这里的人可以为我指出正确的方向,但如果非阻塞路线是我需要走的路。
我看到很多人喜欢使用库,但我想学习这样做!
我也是在 mac 上编程和使用套接字的新手。可能不是最好的第一次项目,但我现在开始了!所以我希望继续:) 任何帮助都会很好!
先感谢您!