在 vc++ 代码中使用 wininet Api 发出 json 发布请求时得到空白响应

Posted

技术标签:

【中文标题】在 vc++ 代码中使用 wininet Api 发出 json 发布请求时得到空白响应【英文标题】:Getting blank response when making json post request using wininet Api in vc++ code 【发布时间】:2012-04-19 07:37:38 【问题描述】:

我在 vc++ 中使用 wininet Api 发出 json 发布请求,但我收到空白响应。我已经在提琴手中检查了我的请求标头和请求正文,它在那里工作正常。以下是我的 HttpOpenRequest 和 HttpSendRequest

m_hRequest = HttpOpenRequest(m_hConnect, 
                _T("POST"),
                szURI,
                NULL,
                lpszReferrer,
                NULL,
                INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION 
                | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_FORMS_SUBMIT 
                | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 
                | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP,
                (DWORD) &m_context); 

TCHAR* szHeaders =  _T("Content-Type:application/json\r\n");
TCHAR* szPostData = _T("\"command\":\"remotecontrol\",\"method\":\"countmon.getgatestatus\",\"param\":\"2\"");

HttpSendRequest(m_hRequest, 
                 szHeaders, 
                 _tcslen(szHeaders),  
                szPostData,
                 _tcslen(szPostData)))

我非常需要有人帮助。在此先感谢:)

【问题讨论】:

【参考方案1】:

我能够在应用程序属性中将字符类型从 unicode 更改为多字节字符时得到响应。我不知道为什么,但我认为它无法将 json 字符串作为 unicode 发送

【讨论】:

以上是关于在 vc++ 代码中使用 wininet Api 发出 json 发布请求时得到空白响应的主要内容,如果未能解决你的问题,请参考以下文章

在 wininet 中使用 InternetConnect() API 后,如何判断我是不是仍然连接?

如何在vc中停止正在进行的上传

WebBrowser 控件和 Wininet API

使用 wininet.dll api 从 FTP 站点搜索和检索文件名

wininet api 将文件发送到 http web 服务

使用 WinInet 的客户端身份验证(证书 + 私钥)