我有一个嵌入了CWebBrowser的MFC应用程序。我想在导航到指定的网站时发布数据。通过对互联网的调查,我知道Navigate方法的一个参数旨在传递它。但我尝试了好几次,总是失败。调用导航方法后,数据流量中不携带post数据(是的。我捕获数据并检查它)。我还检查了before2Navigate calback的post参数,它是空的。。
这是我的片段。
void PostData(LPCTSTR URL , LPCTSTR pPostData = NULL ) {
_variant_t flags(0L,VT_I4);
_variant_t target_frame_name("");
_variant_t post_data(!pPostData ? _T("") : pPostData) ;
_variant_t headers("Content-Type: application/x-www-form-urlencodedrn") ;
this->Navigate(URL ,&flags,
&target_frame_name,
&post_data,
&headers) ;
}
请帮帮我。非常感谢。
我已经找到了原因,那是由PostData的错误类型引起的。正如我的代码中提到的,PostData的构造使VT_BSTR变为VARIANT,而正确的构造是VT_ARRAY|VT_UI1
这是供您参考的链接,希望对您有所帮助。
http://support.microsoft.com/default.aspx?scid=KB;en-us;q167658
需要注意的一点是,VS的例子可能有缺陷,不能在unicode 中使用