CHttpFile POST 时 Cookie 疑问
来源:互联网 发布:淘宝退货率在哪里看 编辑:程序博客网 时间:2024/06/11 10:48
POST 的例子:
http://bbs.csdn.net/topics/310014521
bool PostContent(CString strUrl, const CString &strPara, CString &strContent, CString &strDescript)
{
try{
strDescript = "提交成功完成!";
bool bRet = false;
CString strServer, strObject, strHeader, strRet;
unsigned short nPort;
DWORD dwServiceType;
if(!AfxParseURL(strUrl, dwServiceType, strServer, strObject, nPort))
{
strDescript = strUrl + "不是有效有网络地址!";
return false;
}
CInternetSession sess;//Create session
CHttpFile* pFile;
//////////////////////////////////////////////
CHttpConnection *pServer = sess.GetHttpConnection(strServer, nPort);
if(pServer == NULL)
{
strDescript = "对不起,连接服务器失败!";
return false;
}
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,strObject,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT);
if(pFile == NULL)
{
strDescript = "找不到网络地址" + strUrl;
return false;
}
// pFile -> AddRequestHeaders("Content-Type: text/xml; charset=utf-8");
pFile -> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
pFile -> AddRequestHeaders("Accept: */*");
pFile -> SendRequest(NULL, 0, (LPTSTR)(LPCTSTR)strPara, strPara.GetLength());
CString strSentence;
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = pFile->QueryInfo(
HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
&dwStatus, &dwBuffLen);
if( bSuccess && dwStatus>= 200 && dwStatus<300)
{
char buffer[2049];
memset(buffer, 0, 2049);
int nReadCount = 0;
while((nReadCount = pFile->Read(buffer, 2048)) > 0)
{
strContent += buffer;
memset(buffer, 0, 2049);
}
bRet = true;
}
else
{
strDescript = "网站服务器错误" + strUrl;
bRet = false;
}
////////////////////////////////////////
pFile->Close();
sess.Close();
return bRet;
}
catch(...)
{
int nCode = GetLastError();
strDescript.Format("向服务器post失败!错误号:%d", nCode);
return false;
}
}
但是在 POST 带有Cookie时使用那种方式会得不到想要的结果,解决办法为:
http://www.reader8.cn/jiaocheng/20120219/2233441.html
CHttpFile 设置cookie的疑问
我在模拟给百度发get数据
http://www.baidu.com/s?wd=123
想加入Cookie: BAIDUID=11111111111111111111111111111111:FG=1; USERID=222222222222222222222222; J_MY=1
但是抓包怎么都看不到这个信息。
- C/C++ code
....pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,strPara,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT); pFile->AddRequestHeaders("Accept: */*"); pFile->AddRequestHeaders("Accept-Language: zh-cn");pFile->AddRequestHeaders("User-Agent: Mozilla/4.0");pFile->AddRequestHeaders("Connection: Keep-Alive");pFile->AddRequestHeaders("Cookie: BAIDUID=11111111111111111111111111111111:FG=1; USERID=222222222222222222222222; J_MY=1");....
不知道怎么回事了。
[解决办法]
pServer->OpenRequest加上INTERNET_FLAG_NO_COOKIES
OpenRequest(CHttpConnection::HTTP_VERB_GET,strPara,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_COOKIES);
- CHttpFile POST 时 Cookie 疑问
- CHttpFile 设置cookie总是失败的疑问的处理
- CHttpFile实现Get/Post
- CHttpFile GET/POST 提交数据
- CHttpFile
- CHttpFile
- CHttpFile
- MFC中CHttpFile QueryInfo Cookie获取不全的BUG
- 用CHttpFile实现简单的GET/POST数据
- 用CHttpFile实现简单的GET/POST数据
- CHttpFile实现Get/Post - 下载网页 提交表单
- 用CHttpFile实现简单的GET/POST数据
- 用CHttpFile实现简单的GET/POST数据
- 用CHttpFile实现简单的GET/POST数据
- 用CHttpFile实现简单的GET/POST数据
- httpClient post with cookie
- 关于cookie和session的疑问
- CHttpFile::QueryInfo
- HDU-1022-火车进出站问题 .
- 【Matlab学习笔记】【函数学习】max()和max(max())的区别
- 自定义Notification添加点击事件
- Gym 100703K Word order 简单贪心
- spring利用ApplicationListener自启动
- CHttpFile POST 时 Cookie 疑问
- [LeetCode] Unique Paths
- Axure 倒计时使用变量
- Android性能优化技巧
- iOS tableView的刷新 笔记
- Android 性能优化之使用MAT分析内存泄露问题
- 2002 计算球体积
- IOS--UI 电影列表纯代码
- iOS Objective-C @property属性的用法