【原创】vc++ mfc下访问http的类,接口非常简单,很好用



因为用c++访问http的操作有很多,但是,用socket访问太麻烦,直接用微软的api又没有那么大的自由度。所以自己写了一个。

能很方便的实现ccookie管理,get,post操作。支持代理访问,图片下载。

下面是c++ http类的头文件:

  

#pragma once
class CHttp
{
public:
CHttp( void);
~CHttp( void);
virtual  bool put(CString inbuff,CString *outbuff,CString type);
virtual  bool  get(CString url,CString *result);
virtual  bool  get(CString ip,CString port,CString url,CString *result);
virtual  bool post(CString url, CString pstr, CString* result);
virtual  bool post(CString ip,CString port,CString url,CString pstr, CString *result);

virtual  bool getimage(CString url,CString path);

virtual  bool m_connect(unsigned  long ip,CString port);
virtual  void BulidCookie(CString urlsc);
virtual CString fakeip( void);

CString cookie;
CString pryIp;
CString pryPort;
CString referer;


protected:
DWORD dwTimeOut;
SOCKET MySocket;
bool m_bConnect;

CString host;
CString nfakeip;

int m_nContent;
bool chunked;
public:
virtual  int Init( void);
virtual  int UInit( void);

};


使用实例:

1.get网页资源:

(1)将类文件加入工程,并包含头文件

#include "http.h"

(2)添加一个变量 urls,存储返回的http源码

CString urls;

CHttp http; // 实例化类

http.Init(); // 初始化(添加socket库支持)

http. get( " http://www.it900.net/ ",&urls);



好了,四句代码就把www.it900.net的主页http源码下载出来了,是不是很方便。

2.post方法:

添加头文件,新建类,初始化就不说了,根据post函数接口新建一个要post的CString;

比如要发送这个变量:

  

CString pram=“urername= 11&password= 22&button=login”;

http.post( " http://www.it900.net ",pram,&urls);


这样就把pram的内容post到了网页了。

3.代理支持。

如果要使用192.168.1.1:80这个代理

则直接:

  

http. get( " 192.168.1.1 ", " 80 ", " http://www.it900.net/ ",&urls);


非常的方便简洁。



如果有什么问题,直接在本blog留言就行,只是自己用,可能有不完善的地方望见谅,用这个类写过很多程序了,都好像没出什么问题,有更好的建议请联系我。

类文件下载地址:http://www.xiaoqin.in/index.php?a=details&aid=88

 

转载于:https://www.cnblogs.com/qhgongzi/archive/2011/11/13/2247489.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值