1
CAtlNavigateData navData;
CStringA m_strForm = "name=+++&priv=1&password=";
navData.SetSocketTimeout(m_nMilliSecond);
navData.SetMethod(ATL_HTTP_METHOD_POST); 
navData.SetPostData((BYTE*)(LPSTR)(LPCSTR)m_strForm, m_strForm.GetLength(), QHTTP_FORM_URLENCODE); 

我抓到邮包,找到邮包数据 name = "",应该是 name="+++"。确实SetPostData(...)不能处理特殊符号。我怎样才能避免这种情况?

感谢 Snazzer 的回答。ATL 是否为此提供 API?

4

1 回答 1

0

您需要对字符串进行 URL 编码,因此将 '+' 替换为 '%2B'

CStringA m_strForm = "name=%2B%2B%2B&priv=1&password=";

有关更多信息,请查看URL 编码

于 2009-11-09T04:42:38.843 回答