18,356
社区成员
发帖
与我相关
我的任务
分享
//以下是post
CString strResponsePage(L"d:\\test.log");
strResponsePage += ".log";
int nResult = 5;
CString strErrorMsg;
CString strURL;
GetDlgItem(IDC_EDIT1)->GetWindowText(strURL);
WideCharToMultiByte(CP_ACP,0,strURL,-1,NULL,0,NULL,NULL);
// WideCharToMultiByte(CP_UTF8,0,strURL,-1,NULL,0,NULL,NULL);
CString strParam;
strParam = L"firstnames=wintone&middlenames=1992070&surname=BeiJing&surname2=hello&postalcode=good&city=beijing&state=1";
WideCharToMultiByte(CP_ACP,0,strParam,-1,NULL,0,NULL,NULL);
// WideCharToMultiByte(CP_UTF8,0,strParam,-1,NULL,0,NULL,NULL);
if(!strURL.IsEmpty() && !strParam.IsEmpty())
{
int nResult = 5;
CInternetSession session(_T("HttpFilePOSTer"));
//WideCharToMultiByte(CP_UTF8,0,strParam,-1,NULL,0,NULL,NULL);
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
TCHAR szBuff[1024];
DWORD dwRet;
CFile file;
// http://192.168.0.155:8080/UploadFile/servlet/strTest?name=123&birthday=20140827&address=456
DWORD dwServiceType;
CString strServer, strObject, strUsername, strPassword;
INTERNET_PORT nPort;
if (AfxParseURLEx(strURL, dwServiceType, strServer, strObject, nPort, strUsername, strPassword) == FALSE)
{
strErrorMsg = "地址错误";
nResult = 1;
return ;
}
try
{
pServer = session.GetHttpConnection(strServer, nPort);
CString version(L"HTTP/1.1");
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject,NULL,1,NULL,(LPCTSTR)version,INTERNET_FLAG_SECURE|INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_RELOAD|INTERNET_FLAG_NO_CACHE_WRITE
|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|INTERNET_FLAG_IGNORE_CERT_CN_INVALID);
BOOL flag= FALSE;
CString head;
head = L"User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag= FALSE;
head = L"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag= FALSE;
head = L"Accept-Language: en,es;q=0.5";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag= FALSE;
head = L"Accept-Charset: utf-8";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag = FALSE;
head = L"Accept-Encoding: gzip, deflate";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag = FALSE;
head = L"Connection: keep-alive";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag = FALSE;
head = L"Content-Type: multipart/form-data; boundary=---------------------------18386433624122650881791569604";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
flag = FALSE;
head = L"Content-Length: 5069";
// WideCharToMultiByte(CP_ACP,0,head,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_UTF8,0,head,-1,NULL,0,NULL,NULL);
flag = pFile->AddRequestHeaders(head);
BOOL res = pFile->SendRequest(NULL,0,(LPVOID)(LPCTSTR)strParam,strParam.GetLength());
if(res == TRUE)
{
// AfxMessageBox()
}
else
{
return;
}
pFile->EndRequest();
pFile->QueryInfoStatusCode(dwRet);
if(dwRet == HTTP_STATUS_OK)
{
strErrorMsg = "提交成功";
AfxMessageBox(_T("oK,成功"));
}
else
{
strErrorMsg = "提交失败";
AfxMessageBox(_T("oK,失败"));
}
}
catch (CInternetException* pEx)
{
nResult = 1;
pEx->GetErrorMessage(szBuff, 1024);
strErrorMsg = szBuff;
}
if(pFile)
{
delete pFile;
pFile = NULL;
}
if(pServer)
{
delete pServer ;
pServer = NULL;
}
}