永发信息网

关于VC post cookie 问题

答案:2  悬赏:70  手机版
解决时间 2021-02-28 11:25
  • 提问者网友:风月客
  • 2021-02-27 13:48
我正在写一个软件 目前碰到了 不知道如何post数据带cookie提交的

就是对一个url post提交数据 但是必须指定 cookie

不知道如何指定 请给详细C++代码 感激不尽

麻烦大牛写代码的时候 请注上 解释 本人小菜 可能有所不理解 望见谅
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-02-27 13:58
如果是用WinInet接口来进行HTTP开发的,那么在你HttpOpenRequest时加上INTERNET_FLAG_NO_COOKIES标志,然后在你调用HttpSendRequest之前,使用相关的接口如HttpAddRequestHeaders加上你的COOKIE头,这样HttpSendRequest发出的http数据包就包含有你指定的COOKIE头部。
比如:
这是我写的某个代码片段,供参考:
HINTERNET hInternet = InternetOpen( NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );
HINTERNET hConnect = InternetConnect( hInternet, __TEXT("*****"), INTERNET_DEFAULT_HTTPS_PORT,
NULL, NULL, INTERNET_SERVICE_HTTP, NULL, 0 );
CString sUri;
LONGLONG lTime = GetUnixTime();
sUri.Format( "*****/*****?%s&v=%I64u", lptszCodeStr, lTime );

HINTERNET hRequest = HttpOpenRequest( hConnect, __TEXT("GET"), sUri.GetBuffer(), NULL,
"https://*****.*****.com/v2/?reg&tpl=pp&u=", NULL,
dwHttpFlags, 0 );
CString sCookieHdr = __TEXT("Cookie: ");
map::iterator iIter = CookiePair.begin();
for( ; iIter != CookiePair.end(); iIter++ )
{
sCookieHdr += iIter->first;
sCookieHdr += __TEXT("=");
sCookieHdr += iIter->second;
sCookieHdr += __TEXT("; ");
}//将之前保存的COOKIE格式化为“Cookie: xx=xx;”格式
HttpAddRequestHeaders( hRequest, sCookieHdr.GetBuffer(), -1, HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE );
HttpSendRequest( hRequest, NULL, NULL, 0, 0 );
全部回答
  • 1楼网友:第四晚心情
  • 2021-02-27 14:29
CInternetSession类有GetCookie()和SetCookie()方法
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯