CAtlNavigateData无法处理+等特殊符号

时间:2009-11-09 02:48:04

标签: c++ special-characters atl

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?

1 个答案:

答案 0 :(得分:0)

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

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

有关详细信息,请查看URL encoding