c++ POST 提交数据异常。说“服务器返回的信息无效或无法识别”

_Br 发布于 2013/08/14 17:56
阅读 850
收藏 0

 请问大概是什么原因引起的呢?

我的代码是这个:

 CString SendPostData( const WCHAR*url,  const char*senddata )

//url地址为:https://c.pcs.baidu.com/rest/2.0/pcs/file?method=upload&access_token=3.571ff02114ebd70d3e2153df0255e25a.2592000.1379036321.1344495316-1176036&path=%2fapps%2fBrance%2f3.doc

BOOL bResult = FALSE;

DWORD dwType = 0;
CString strServer;
CString strObject;
INTERNET_PORT wPort = 0;
DWORD dwFileLength = strlen(senddata);
char * pFileBuff  = new char[dwFileLength + 1];
memset(pFileBuff, 0, dwFileLength+1);
memcpy(pFileBuff,senddata,dwFileLength);

CHttpConnection * pHC = NULL;
CHttpFile * pHF = NULL;
CInternetSession cis;

bResult =  AfxParseURL(url, dwType, strServer, strObject, wPort);
if(!bResult)
return FALSE;
try
{
const int nTimeOut = 5000;
cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, nTimeOut); //联接超时设置
cis.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 1);  //重试1次
pHC = cis.GetHttpConnection(strServer, wPort);  //取得一个Http联接

pHF = pHC->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject);
if(!pHF->SendRequest(NULL, 0, pFileBuff, dwFileLength)) //这里发生抛出异常,说“服务器返回的信息无效或无法识别”
{
delete[]pFileBuff;
pFileBuff = NULL;
pHF->Close();
pHC->Close();
cis.Close();
return FALSE;
}
DWORD dwStateCode = 0;
pHF->QueryInfoStatusCode(dwStateCode);

if(dwStateCode == HTTP_STATUS_OK)
bResult = TRUE;
}

catch(CInternetException * pEx)
{
WCHAR sz[256] = L"";
pEx->GetErrorMessage(sz, 25);
CString str;
str.Format(L"InternetException occur!\r\n%s", sz);
AfxMessageBox(str);
}
catch(CFileException& fe)
{
CString str;
str.Format(L"FileException occur!\r\n%d", fe.m_lOsError);
AfxMessageBox(str);
}
catch(...)
{
DWORD dwError = GetLastError();
CString str;
str.Format(L"Unknow Exception occur!\r\n%d", dwError);
AfxMessageBox(str);
}

delete[]pFileBuff;
pFileBuff = NULL;
pHF->Close();
pHC->Close();
cis.Close();

return L"";

异常发生在这里:

加载中
返回顶部
顶部