CInternetSession post
场景:WinInet编程, CInternetSession,POST数据一直回到400
WinInet编程, CInternetSession,POST数据一直返回400
void CPOST_HTTPDlg::OnBnClickedBtnSummit()
{
CHAR szReceiveBuffer[36000];
memset(szReceiveBuffer,0,36000);
char *req="POST HTTP/1.0/r/n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*/r/n"
"Accept-Language: en-us/r/n"
"Accept-Encoding: gzip, deflate/r/n"
"User-Agent: Mozilla/4.0/r/n"
"Content-Length: 34/r/n"
"Host: 192.168.1.130/r/n"
"Content-Type: application/x-www-form-urlencoded/r/n/r/n";
//"test";//
//LPSTR lpOptions="user=admin&Pwd=admin&submit=提交";
LPSTR lpOptions="提交";
CInternetSession cInternetSession;
//CHttpFile * pHttpFile = (CHttpFile *)cInternetSession.OpenURL(_T("http://192.168.1.130/wen.txt"),1,INTERNET_FLAG_TRANSFER_ASCII,req,strlen(req));
CHttpConnection * pHttpConnection = cInternetSession.GetHttpConnection(_T("192.168.1.130"),(INTERNET_PORT)80);
CHttpFile * pHttpFile = pHttpConnection->OpenRequest("POST", _T("/wen.txt"));
pHttpFile->AddRequestHeaders(req);
pHttpFile->SendRequest(req,strlen(req), (LPVOID) lpOptions, (DWORD)strlen(lpOptions));
//pHttpFile->SendRequest();
pHttpFile->Read(szReceiveBuffer, 36000);
cInternetSession.Close();
}
上面的就是代码,我想点击按钮就把数据 “提交” 发送到服务器 跟踪服务器是能收到,但是返回400错误,也就是说我的请求信息是错误的。知道的麻烦告诉我一下,我把post换成get,下面的sendrequest函数换成注释的,能正确的得到wen.txt的内容。
到底要如何POST数据呢
------解决方案--------------------
post一般都是用来提交数据的,get是获取数据的
------解决方案--------------------
用GET 才行 不接受post没有反回数据当然404 了
------解决方案--------------------
还不明白?.....
服务器不接受你的post请求,你post什么post?
WinInet编程, CInternetSession,POST数据一直返回400
void CPOST_HTTPDlg::OnBnClickedBtnSummit()
{
CHAR szReceiveBuffer[36000];
memset(szReceiveBuffer,0,36000);
char *req="POST HTTP/1.0/r/n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*/r/n"
"Accept-Language: en-us/r/n"
"Accept-Encoding: gzip, deflate/r/n"
"User-Agent: Mozilla/4.0/r/n"
"Content-Length: 34/r/n"
"Host: 192.168.1.130/r/n"
"Content-Type: application/x-www-form-urlencoded/r/n/r/n";
//"test";//
//LPSTR lpOptions="user=admin&Pwd=admin&submit=提交";
LPSTR lpOptions="提交";
CInternetSession cInternetSession;
//CHttpFile * pHttpFile = (CHttpFile *)cInternetSession.OpenURL(_T("http://192.168.1.130/wen.txt"),1,INTERNET_FLAG_TRANSFER_ASCII,req,strlen(req));
CHttpConnection * pHttpConnection = cInternetSession.GetHttpConnection(_T("192.168.1.130"),(INTERNET_PORT)80);
CHttpFile * pHttpFile = pHttpConnection->OpenRequest("POST", _T("/wen.txt"));
pHttpFile->AddRequestHeaders(req);
pHttpFile->SendRequest(req,strlen(req), (LPVOID) lpOptions, (DWORD)strlen(lpOptions));
//pHttpFile->SendRequest();
pHttpFile->Read(szReceiveBuffer, 36000);
cInternetSession.Close();
}
上面的就是代码,我想点击按钮就把数据 “提交” 发送到服务器 跟踪服务器是能收到,但是返回400错误,也就是说我的请求信息是错误的。知道的麻烦告诉我一下,我把post换成get,下面的sendrequest函数换成注释的,能正确的得到wen.txt的内容。
到底要如何POST数据呢
------解决方案--------------------
post一般都是用来提交数据的,get是获取数据的
------解决方案--------------------
用GET 才行 不接受post没有反回数据当然404 了
------解决方案--------------------
还不明白?.....
服务器不接受你的post请求,你post什么post?