最近我试图在Windows Mobile中创建一个HTTP POST查询,但POST查询不成功。这是我一直在努力做 这里sRequestHeaders是这是Unicode和MSDN文档的标题说以下有关它用于POST“lpOptional”参数参数在Windows Mobile中设置HTTP POST参数
pOptional [中]
指向缓冲区的指针,该缓冲区包含在请求标头后立即发送的任何可选数据。该参数通常用于POST和PUT操作。可选数据可以是发布到服务器的资源或信息。如果没有可选数据要发送,则此参数可以为NULL。
dwOptionalLength [IN]
可选数据,以字节为单位的大小。如果没有可选数据要发送,此参数可以为零。
它只是说,pOptional是一个包含可选数据的缓冲区,dwOptionalLength以字节为单位指定缓冲区,但当尝试向此调用发送Unicode缓冲区及其字节大小时,响应不是200(HTTP_OK)。经过多次尝试,我发现参数必须在ANSI缓冲区中。所有其他参数处理LPCTSTR,即TCHAR缓冲区,这一个单独需要是ANSI缓冲区。以下是一个
if(FALSE == HttpSendRequest(hRequest, (LPCTSTR)sRequestHeaders, sRequestHeaders.GetLength(), LPVOID)(LPSTR)pszAnsiRequestParams, dwRequestParamsLen))
在上述呼叫pszAnsiRequestParams代码是ANSI缓冲器和dwRequestParamsLen是以字节为单位该缓冲器的大小。一旦我改变了这个,反应是200.这是怎么一直发送参数?如果是这种情况,我将如何发送Unicode POST参数?因为在我的情况下,我正在处理ASCII字符的时间,这工作正常,但不知何故,我觉得应该有一个出路。
有人可以发布解决方案我还缺少什么?