CInternetSession的简单使用_woshiyuanlei的博客-程序员宅基地

技术标签: CInternetSession  CHttpFile  

1. CInternetSession的简单使用

CInternetSession session;

CHttpFile *file = NULL;

CString strURL = " http://www.20abcd.com";

CString strHtml = "”;   //存放网页数据

 

try{

       file = (CHttpFile*)session.OpenURL(strURL);

}catch(CInternetException * m_pException){

       file = NULL;

       m_pException->m_dwError;

       m_pException->Delete();

       session.Close();

       MessageBox("CInternetException");

}

CString strLine;

if(file != NULL){

       while(file->ReadString(strLine) != NULL){

       strHtml += strLine;

       }

 

}else{

       MessageBox("fail");

}

 

session.Close();

file->Close();

delete file;

file = NULL;

 

2. CInternetSession的代理与超时使用

CInternetSession session;

CHttpFile *file = NULL;  

 

INTERNET_PROXY_INFO proxyinfo;

proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY;

proxyinfo.lpszProxy ="211.104.243.73:8080";

proxyinfo.lpszProxyBypass = NULL;

session.SetOption(INTERNET_OPTION_PROXY,(LPVOID)&proxyinfo,

sizeof(INTERNET_PROXY_INFO));

 

session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 5000);      // 5秒的连接超时

session.SetOption(INTERNET_OPTION_SEND_TIMEOUT, 1000);           // 1秒的发送超时

session.SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT, 7000);        // 7秒的接收超时

session.SetOption(INTERNET_OPTION_DATA_SEND_TIMEOUT, 1000);     // 1秒的发送超时

session.SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, 7000);       // 7秒的接收超时

session.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 1);          // 1次重试

 

try{

       file = (CHttpFile*)session.OpenURL("http://www.163.com",1,

INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD|INTERNET_FLAG_DONT_CACHE);

}catch(CInternetException * m_pException){

       file = NULL;

       m_pException->m_dwError;

       m_pException->Delete();

       session.Close();

       MessageBox("CInternetException");

       return;

}

CString strLine;

if(file != NULL){

       while(file->ReadString(strLine) != NULL){

              MessageBox(strLine);

       }

}else{

       MessageBox("fail");

}

file->Close();

session.Close();

 

3. CInternetSessionPOST使用

CInternetSession m_InetSession(_T("session"),

       0,

       INTERNET_OPEN_TYPE_PRECONFIG,

       NULL,

       NULL,

       INTERNET_FLAG_DONT_CACHE);     //设置不缓冲

CHttpConnection* pServer = NULL;

CHttpFile* pFile = NULL;

CString strHtml = "";

CString strRequest = "name=123&pwd=321\r\n"; //POST过去的数据

CString strHeaders = "Accept: */*\r\nReferer: http://www.goodwaiter.com/\r\nAccept-Language: zh-cn\r\nContent-Type: application/x-www-form-urlencoded\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

 

try{

       INTERNET_PORT nPort; //端口

       nPort=80;

       pServer = m_InetSession.GetHttpConnection("www.goodwaiter.com", nPort);

       pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/");

       pFile->AddRequestHeaders(strHeaders);

 

       pFile->SendRequestEx(strRequest.GetLength());

       pFile->WriteString(strRequest); //重要-->m_Request 中有"name=aaa&name2=BBB&..."

       pFile->EndRequest();

       DWORD dwRet;

       pFile->QueryInfoStatusCode(dwRet);

 

       if (dwRet == HTTP_STATUS_OK){

              CString strLine;

              while ((nRead = pFile->ReadString(strLine))>0)

              {

                     strHtml += strLine;

              }

       }    

       delete pFile;

       delete pServer;

}

catch (CInternetException* e){

       e->m_dwContext;

}

 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/woshiyuanlei/article/details/43483683

智能推荐

UGUI ScrollRect使用_weixin_30566063的博客-程序员宅基地

第一次在正式项目里用UGUI,遇到不少问题。其中ScrollRect是比较让人恼火的。看了很多网上已有教程和原代码,终于做出满足项目需求的样子来了。简单分享一下。如有错误的地方,希望大家可以指出,一起进步!制作一个滚动列表,首先就会想到ScrollRect这个组件。但与NGUI的不同,NGUI的UIScrollView把很多功能都写好了,或者都写到滚动列表专用的几个脚本里。但UGUI的各...

对Guava Cache的封装和使用(包括一个管理页面实现了查看统计信息、情况、查看记录等)_最是那一低头的温柔的博客-程序员宅基地

缓存技术学习 https://www.itkc8.com 非常非常感谢http://blog.csdn.net/clementad/article/details/46491701  由于项目的实际情况,需要缓存一些比较不经常改动的数据在本地服务器中,以提高接口处理的速度。决定采用Guava Cache之后,整理了一些具体需求: 由于要缓存的key-value对比较多,...

Flash download tool 下载报错的弹窗信息对应的原因_25March的博客-程序员宅基地_flashtool报错

使用 ESP32-WROOM-32 的开发板下载 AT 固件,出现如下报错,是什么原因?错误原因:使用了 ESP32-WROOM-32 开发板,选择了 ESP32D2WD 的模组选择。使用 ESP32-WROOM-32 的开发板下载 AT 固件,出现如下报错,是什么原因?错误原因:使用了 ESP32-WROOM-32 开发板,选择了 ESP8266 的模组选择。使用 ESP32-S2-WROVER 模组的开发板下载固件,出现如下报错:错误原因:在 ESP32..

InterSystems开发者竞赛: FHIR加速器_InterSystems的博客-程序员宅基地

亲爱的社区开发者们,大家好!欢迎积极参与新一轮InterSystems开发者竞赛!????InterSystems 编程大赛:FHIR 加速器????提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。时间:2021年5月10日-6月6日奖金总额: $8,750奖项...

python 爬虫text函数_通过三个函数了解Python网络爬虫_weixin_39556590的博客-程序员宅基地

前言:最近在学习Python网络爬虫,在这里分享一下自己的学习成果,通过几个函数梳理下网络爬虫的过程,网络爬虫就是用自己的电脑去web服务器(另一台电脑)上下载东西,其中涉及到两个问题:(1)怎么让自己的电脑和web服务器连接(2)正常连接之后,怎么把想要的信息提取出来爬虫相关函数:def get_html_text(url): #解决第一个问题passdef get_info_list(htm...

centos安装stress安装失败_CentOS7.4安装压力测试软件stress_乐游西奥的博客-程序员宅基地

[[email protected] stress-1.0.4]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[[email protected] thmsoftware]# wget http://people.seas.harvard.edu/~apw/stress/stress-1.0.4.tar.gz--2018-01-23 11...

随便推点

docker-registry的定制和性能分析_PaaS小魔仙的博客-程序员宅基地

docker-index·        Web UI·        Meta-data元数据存储(附注、星级、公共库清单)·        访问认证·        token管理docker-registry·        存储镜像、以及镜像层的家族谱系·        没有用户账户数据·        不知道用户的账户和安全性·        把安全和认证委托给docker-hub来做,...

Maven中-DskipTests和-Dmaven.test.skip=true的区别_qq_36484241的博客-程序员宅基地

在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。-Dmaven.test.skip=t...

Gym-102220J Time Limit(水题)_井中月_笼中雀的博客-程序员宅基地

题目链接:https://codeforces.com/gym/102220/problem/J#include"iostream"#include"cstdio"#include"stdlib.h"#include"cmath"#include"cstring"#include"cstdlib"#include"vector"#include"stack"#include"queue"#include"set"#include"map"#include"algorithm"#in

4.SQL优化之Where语句_ciqingloveless的博客-程序员宅基地_sql优化where

1 优化Where语句以下优化适用于使用SELECT语句,但相同的优化适用于DELETE和UPDATE语句中的WHERE子句。为了优化查询,有时我们可能考虑牺牲程序可读性,但是MySQL在生成执行计划时会对SQL进行改写,所以我们不需要过度改写,尽量保证可读性,只有在性能无法满足的基础上在按照自我理解进行重写SQL,以下是几种MySQL自动进行的SQL改写的例子:删除不必要的括号: ...

DMP用户画像系统(SparkGraphX SparkCore SparkSQL)_weixin_34372728的博客-程序员宅基地

DMP用户画像系统(SparkGraphX SparkCore SparkSQL)课程观看地址:http://www.xuetuwuyou.com/course/221课程出自学途无忧网:http://www.xuetuwuyou.comDMP系统 用户画像也称人物角色,是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型,即真实用户的虚拟代表。...

常见文本样式及标签_普通网友的博客-程序员宅基地

  本文设计到常见对文档的处理样式,和块,行标签的特点。   没用什么重要内容,只是自己的一些知识点的回忆,对以前知识的一个梳理过程,望某懒虫加油!!!    <!DOCTYPE html><htm...

推荐文章

热门文章

相关标签