小编Sim*_*nen的帖子

使用 Winsock 进行简单 HTTP 获取

前段时间,我做了一个非常简单的方法,可以发出http请求并返回响应。这按照我的预期工作,但现在我想再次使用它,但我突然遇到了一个我似乎无法弄清楚的问题。每次我发出请求时,都会返回错误 503:服务不可用。

有时有效,有时无效。

我注意到如果我在连接关闭后放置一个断点并稍等一下然后继续,就没有问题并且一切正常。所以我的猜测是这与服务器的计时/延迟有关。

有人对此有经验吗?

提前致谢!

string HttpHelper::HttpGet(string host, string path)
{
    WSADATA wsaData;
    int result;

    // Initialize Winsock
    result = WSAStartup(MAKEWORD(2, 2), &wsaData);
    if (result != 0)
        throw SocketError(L"WSAStartUp", result);

    // Resolve the server address and port
    addrinfo * pAddrInfo;
    result = getaddrinfo(host.c_str(), "80", 0, &pAddrInfo);
    if (result != 0)
        throw SocketError(L"addrinfo", result);

    //Create the socket
    SOCKET sock = socket(pAddrInfo->ai_family, pAddrInfo->ai_socktype, pAddrInfo->ai_protocol);

    if (sock == INVALID_SOCKET)
        throw SocketError(L"Socket", WSAGetLastError());

    // Connect to server.
    result = connect(sock, pAddrInfo->ai_addr, pAddrInfo->ai_addrlen); …
Run Code Online (Sandbox Code Playgroud)

c++ http winsock

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

http ×1

winsock ×1