winhttp post提交问题

为啥我post一个网址 却说我账号不能为空我一想可能就是数据没有提交上去可是我又不怎么理解这个winhttp 第一次用想请教下 我非常想做抓取网页内容这一类的 post登陆操作网页啥的 代码如下:

include <string>

include <iostream>

include <windows.h>

include <winhttp.h>

pragma comment(lib,"winhttp.lib")

pragma comment(lib,"user32.lib")

void main()
{

DWORD dwSize = 0;
DWORD dwDownloaded = 0;
LPSTR pszOutBuffer = NULL;
HINTERNET  hSession = NULL,hConnect = NULL,hRequest = NULL;

BOOL  bResults = FALSE;

//初始化,为应用程序,使用WinHTTP的功能,并返回一个WinHTTP的会话句柄。
hSession = WinHttpOpen(L"User-Agent", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);

if (hSession)
{
    //指定一个HTTP请求的初始目标服务器并返回一个HINTERNET连接句柄该初始目标的HTTP会话。
    hConnect = WinHttpConnect(hSession, L"match2.gametea.com", INTERNET_DEFAULT_HTTP_PORT, 0);
}

if (hConnect)
{
    //创建一个HTTP请求句柄。
    hRequest = WinHttpOpenRequest(hConnect, L"POST", L"/2014/exchange/public/login",NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
}
if (hRequest)
{

    std::string data = "name=6000000000&password=60000000&timestamp=1497333252384";

    const void *ss = (const char *)data.c_str();
    
    bResults = WinHttpSendRequest(hRequest, 0, 0, const_cast<void *>(ss), data.length(), data.length(), 0);

    
}

if (bResults)
{
    bResults = WinHttpReceiveResponse(hRequest, NULL);

}

if (bResults)
{
    do
    {
        // Check for available data.

        dwSize = 0;

        if (!WinHttpQueryDataAvailable(hRequest, &dwSize))
        {
            printf("Error %u in WinHttpQueryDataAvailable.\n", GetLastError());

            break;
        }

        if (!dwSize)
            break;

        pszOutBuffer = new char[dwSize + 1];

        if (!pszOutBuffer)
        {
            printf("Out of memory\n");
            break;
        }

        ZeroMemory(pszOutBuffer, dwSize + 1);

        if (!WinHttpReadData(hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded))
        {
            printf("Error %u in WinHttpReadData.\n", GetLastError());
        }
        else
        {
            printf("%s", pszOutBuffer);
        }

        delete[] pszOutBuffer;

        if (!dwDownloaded)
            break;

    } while (dwSize > 0);
}
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
system("pause");

}

返回 {"code":-1,"message":"u8336u82d1u8d26u53f7u4e3au7a7a"}

解码后 {"code":-1,"message":"茶苑账号为空"} 就这里出毛病了 说我没提交账号的样子

阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题