當前位置:成語大全網 - 書法字典 - C++通過POST向網頁提交數據。有壹個錯誤。。值得求大神拯救妳。請原諒我。圖片不對。

C++通過POST向網頁提交數據。有壹個錯誤。。值得求大神拯救妳。請原諒我。圖片不對。

只是幫妳解決崩潰的問題。

就說兩個問題:

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”);