VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1928|回复: 11

[求助] 关于IWinHttpRequestPtr 设置代理遇到的困惑

[复制链接]
14_avatar_middle
在线会员 发表于 2017-1-15 17:38:58 | 显示全部楼层 |阅读模式
3驿站币
BOOL CHttpClient::f_Get(IWinHttpRequestPtr &pHttpReq,CString m_URL,CString m_Referer,CString Set_Cookie,CString& Ret_Data,CString &Ret_Cookie)
{
        HRESULT hr;
        hr = pHttpReq->Open(_T("GET"),(LPCTSTR)m_URL);
        if (FAILED(hr)) return FALSE;

        if (Set_Cookie.GetLength()>0)
        {
                pHttpReq->SetRequestHeader(_T("Cookie"),(LPCTSTR)Set_Cookie);
        }
        pHttpReq->SetRequestHeader(_T("User-Agent"), _T("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"));
        if(m_Referer.GetLength()>0)
        {
                pHttpReq->SetRequestHeader(_T("Referer"),(LPCTSTR)m_Referer);
        }
/////////////////////////////////////////////////////////这里是查询MSDN  
        //VARIANT         varProxy;
        //VARIANT         varUrl;
        //VariantInit(&varProxy);
        //VariantInit(&varUrl);

        //varProxy.vt = VT_BSTR;
        //varProxy.bstrVal = SysAllocString(L"49.112.122.85:9000");
        //varUrl.vt = VT_BSTR;
        //varUrl.bstrVal = SysAllocString(L"*.microsoft.com");

        //hr = pHttpReq->SetProxy(2,varProxy,varUrl);
        //if (FAILED(hr)) return FALSE;
       ///////////////////////////////////////////// 这里是看到SKY老大的代码
        //hr = pHttpReq->SetProxy(2,"49.112.122.85:9000");
        //if (FAILED(hr)) return FALSE;
      //////////////////////////////////////////       以上的设置代理IP都不好使  能请问大家怎么设置代理IP码 还有就是代理IP可能是匿名的 需要怎么弄了网上关于这块的资料不多

        hr = pHttpReq->Send();
        if (FAILED(hr)) return FALSE;

        Get_WinHttp_RspString(pHttpReq,Ret_Data);

        _bstr_t bstrAllHeader = pHttpReq->GetAllResponseHeaders();
        Ret_Cookie = GetCookieString(CString((LPCTSTR)bstrAllHeader));

        return TRUE;
}





上一篇:vc第三方界面库BCGControlBar
下一篇:为什么CodeProject上下载的源码压缩包里面是空的
51_avatar_middle
online_admins 发表于 2017-1-16 01:24:40 | 显示全部楼层
不好使是什么意思,是 SetProxy 设置失败了吗,还是说设置上了之后不走代理?
14_avatar_middle
ico_lz  楼主| 发表于 2017-1-16 03:06:53 | 显示全部楼层
Syc 发表于 2017-1-16 01:24
不好使是什么意思,是 SetProxy 设置失败了吗,还是说设置上了之后不走代理?

出现崩溃 内存益处提示 pHttpReq->SetProxy(2,varProxy);  如何CString 复制给他了 用_T("49.112.122.85:9000") 可以跑但是会崩溃代码里面代理IP是变化的必须要有一个变量复制给 pHttpReq->SetProxy(2,varProxy);   我看到里面是WCHAR 把CString 转换成WCHAR 老是崩溃 老大你的设置代理IP是怎么搞得
51_avatar_middle
online_admins 发表于 2017-1-16 09:04:41 | 显示全部楼层
Meet1026 发表于 2017-1-16 03:06
出现崩溃 内存益处提示 pHttpReq->SetProxy(2,varProxy);  如何CString 复制给他了 用_T("49.112.122.85: ...

我就是这么写的啊,没看出啥问题,可以加上 try-catch 捕获下异常看看
14_avatar_middle
ico_lz  楼主| 发表于 2017-1-18 01:59:03 | 显示全部楼层
Syc 发表于 2017-1-16 09:04
我就是这么写的啊,没看出啥问题,可以加上 try-catch 捕获下异常看看

老大 我单步调试了很久 只要加上代理IP pHttpReq->Send(); 这条就过不去 为什么了
51_avatar_middle
online_admins 发表于 2017-1-18 09:20:37 | 显示全部楼层
Meet1026 发表于 2017-1-18 01:59
老大 我单步调试了很久 只要加上代理IP pHttpReq->Send(); 这条就过不去 为什么了

是不是你的代理不好用啊,或者是代理需要用户名/密码,但是你没在代码中设置
14_avatar_middle
ico_lz  楼主| 发表于 2017-1-18 18:31:27 | 显示全部楼层
Syc 发表于 2017-1-18 09:20
是不是你的代理不好用啊,或者是代理需要用户名/密码,但是你没在代码中设置

老大 放在主线程运行就没事 只要是放在多线程就必崩我郁闷鸟
14_avatar_middle
ico_lz  楼主| 发表于 2017-1-18 19:16:49 | 显示全部楼层
Syc 发表于 2017-1-18 09:20
是不是你的代理不好用啊,或者是代理需要用户名/密码,但是你没在代码中设置

在主线程里面完全可以跑起来没有任何问题 多线程里面就甭 每条线程数据都是相对独立的 就算有共享数据也是锁定了的
14_avatar_middle
ico_lz  楼主| 发表于 2017-1-18 22:13:35 | 显示全部楼层
Syc 发表于 2017-1-18 09:20
是不是你的代理不好用啊,或者是代理需要用户名/密码,但是你没在代码中设置

老大我解决了 是代理IP问题 时间太长没响应导致的崩溃
84_avatar_middle
在线会员 发表于 2017-3-8 20:28:09 | 显示全部楼层
IWinHttpRequestPtr这个头文件在哪?
52_avatar_middle
在线会员 发表于 2017-3-13 11:10:53 来自手机 | 显示全部楼层
Syc 发表于 2017-1-16 01:24
不好使是什么意思,是 SetProxy 设置失败了吗,还是说设置上了之后不走代理?

老大,我想编写一个软件,有没有这方面的人才,有意向的加我QQ:94627097
38_avatar_middle
在线会员 发表于 2017-4-17 20:25:30 | 显示全部楼层
Meet1026 发表于 2017-1-18 22:13
老大我解决了 是代理IP问题 时间太长没响应导致的崩溃

你好,有问题请教
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-7-19 23:29

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表