就說兩個問題:
1,VS2005以上的IDE默認使用UNICODE,妳在代碼中混用ANSI和UNICODE,妳進行強制轉換,導致壹些參數錯誤。
2.OpenRequest接受兩個不同的參數。既然用的是HTTP_VERB_POST,為什麽要轉換成LPCTSTR?這將導致它調用另壹個函數(C++支持具有不同參數的同名函數)。
布爾?PostHttpPage(常量?wstring & amp?主機名,
?const?wstring & amp?路徑名,
?const?wstring & amp?後期數據)
{
使用?命名空間?std
CInternetSession?session(_T("session "),0,INTERNET_OPEN_TYPE_PRECONFIG,NULL,
NULL,INTERNET _ FLAG _ DONT _緩存);?//設置無緩沖
互聯網_端口?n端口?=?80;
DWORD?dwRet?=?0;
CHttpConnection*?pServer?=?會話。GetHttpConnection(
(LPCTSTR)hostName.c_str(),n port);
CHttpFile*?pFile?=?pServer-& gt;OpenRequest(CHttpConnection::
HTTP_VERB_POST,(LPCTSTR)pathname . c _ str());
CString?strHeaders?=?l "內容類型:?application/x-www-form-urlencoded ";?//請求標頭
//開始發送請求
pFile-& gt;SendRequest(strHeaders,(LPVOID)postData.c_str(),
postdata . size());
pFile-& gt;QueryInfoStatusCode(dwRet);
如果?(dwRet?==?HTTP_STATUS_OK)
{
CString?結果呢?換行;
while(pFile->;ReadString(換行符))
{//循環讀取每壹行。
結果?+=?newline+L " \ r \ n ";
}
STD::cout & lt;& lt結果& lt& ltSTD::endl;//顯示返回的內容
}
其他
{
回歸?假的;
}
刪除?pFile
刪除?pServer
cout & lt& lt“成功”
會話。close();
回歸?真實;
}
//調用時,請改用以下代碼
PostHttpPage(L"localhost ",L"welcome.php ",L " name = rain & amp年齡= 21”);