64,644
社区成员
发帖
与我相关
我的任务
分享
// Sample.cpp : Defines the entry point for the console application.
// Author: Kenneth
// QQ: 34510687
// Email:jdwgb@21cn.com
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <wininet.h>
#pragma comment(lib, "wininet.lib")
using namespace std;
int main(int argc, char* argv[])
{
// Handle of Internet Session (InternetOpen)
HINTERNET hInternet ;
// Handle of Internet Open URL (InternetOpenURL)
HINTERNET hOpenUrl ;
char m_URL[255];
for(;;)
{
cout<<"please enter the URL(enter 'exit' to exit):"<<endl;
//cin>>m_URL;
strcpy(m_URL,//"http://nvzhuang.taobao.com/?TBG=66410.142549.2&spm=1.66410.142549.2&ad_id=&am_id=1300457014f91967e9ea&cm_id=&pm_id="
"http://www.csdn.net/");
if(strcmp(m_URL,"exit")==0)
break;
cout<<"the URL you entered is:"<<m_URL<<endl;
InternetSetOption(NULL, INTERNET_OPTION_USERNAME, "用户名", 100);
InternetSetOption(NULL, INTERNET_OPTION_PASSWORD, "密码", 100);
hInternet = InternetOpen("Application",
//INTERNET_OPEN_TYPE_PRECONFIG,
INTERNET_OPEN_TYPE_PROXY,
"HTTP=HTTP:代理名:端口"(HTTP=HTTP:proxy.software.com:8000), NULL,
INTERNET_FLAG_NO_CACHE_WRITE) ;
// If internet session created OK
if (hInternet != NULL) {
// InternetOpenURL
// Begin reading a complete HTTP URL.
hOpenUrl = InternetOpenUrl(hInternet,
m_URL,
NULL,
0,
INTERNET_FLAG_RELOAD,
0) ;
// If Open URL OK
if (hOpenUrl != NULL)
{
BOOL bLoop ;
DWORD lpdwNumberOfBytesRead, dwSize ;
bLoop = true;
dwSize = 200000 ;
LPSTR lpBuffer = "";
while (bLoop)
{
lpBuffer = new char[dwSize+1] ;
// InternetReadFile
// Reads data from a handle opened by the InternetOpenUrl
InternetReadFile(hOpenUrl,
(LPVOID)lpBuffer,
dwSize,
&lpdwNumberOfBytesRead) ;
if (lpdwNumberOfBytesRead == 0)
bLoop = false ;
else
{
lpBuffer[lpdwNumberOfBytesRead] = '\0';
FILE *fp;
fp=fopen("d:\\2.txt","w");
if(fp==NULL)
{
printf("\ncannot open file\n");
exit(1);
}
fprintf(fp,lpBuffer);
fclose(fp);
cout<<(LPCTSTR)lpBuffer<<endl;
}
delete lpBuffer;
}
cout<<"Open URL OK."<<endl;
break;
}
else
cout<<"Error: Can not open URL."<<endl;
// close Open URL
if (hOpenUrl != NULL)
InternetCloseHandle(hOpenUrl);
}
else
cout<<"Error: Can not create Internet Session."<<endl;
// close internet session
if (hInternet != NULL)
InternetCloseHandle(hInternet) ;
}
return 0;
}
hInternet = InternetOpen("Application",
//INTERNET_OPEN_TYPE_PRECONFIG,
INTERNET_OPEN_TYPE_PROXY,
"HTTP=HTTP:代理名:端口"(HTTP=HTTP:proxy.software.com:8000), NULL,
INTERNET_FLAG_NO_CACHE_WRITE) ;
楼主咋还写中文啊,人家那是让你填的东西。
// If internet session created OK
if (hInternet != NULL) {
// InternetOpenURL
// Begin reading a complete HTTP URL.
hOpenUrl = InternetOpenUrl(hInternet,
m_URL,
NULL,
0,
INTERNET_FLAG_RELOAD,
0) ;
// If Open URL OK
if (hOpenUrl != NULL)
{
BOOL bLoop ;
DWORD lpdwNumberOfBytesRead, dwSize ;
bLoop = true;
dwSize = 200000 ;
调用这个函数InternetOpenUrl的时候返回空指针,无法打开URL。你设的那个端口是啥意思啊。我这边上网有指定的端口名的。
#include <iostream>
#include <windows.h>
#include <wininet.h>
#pragma comment(lib, "wininet.lib")
using namespace std;
int main(int argc, char* argv[])
{
// Handle of Internet Session (InternetOpen)
HINTERNET hInternet ;
// Handle of Internet Open URL (InternetOpenURL)
HINTERNET hOpenUrl ;
char m_URL[255];
for(;;)
{
cout<<"please enter the URL(enter 'exit' to exit):"<<endl;
//cin>>m_URL;
strcpy(m_URL,//"http://nvzhuang.taobao.com/?TBG=66410.142549.2&spm=1.66410.142549.2&ad_id=&am_id=1300457014f91967e9ea&cm_id=&pm_id="
"http://www.csdn.net/");
if(strcmp(m_URL,"exit")==0)
break;
cout<<"the URL you entered is:"<<m_URL<<endl;
InternetSetOption(NULL, INTERNET_OPTION_USERNAME, "用户名", 100);
InternetSetOption(NULL, INTERNET_OPTION_PASSWORD, "密码", 100);
hInternet = InternetOpen("Application",
//INTERNET_OPEN_TYPE_PRECONFIG,
INTERNET_OPEN_TYPE_PROXY,
"58.246.200.114:80", NULL,
INTERNET_FLAG_NO_CACHE_WRITE) ;
// If internet session created OK
if (hInternet != NULL) {
// InternetOpenURL
// Begin reading a complete HTTP URL.
hOpenUrl = InternetOpenUrl(hInternet,
m_URL,
NULL,
0,
INTERNET_FLAG_RELOAD,
0) ;
// If Open URL OK
if (hOpenUrl != NULL)
{
BOOL bLoop ;
DWORD lpdwNumberOfBytesRead, dwSize ;
bLoop = true;
dwSize = 200000 ;
LPSTR lpBuffer = "";
while (bLoop)
{
lpBuffer = new char[dwSize+1] ;
// InternetReadFile
// Reads data from a handle opened by the InternetOpenUrl
InternetReadFile(hOpenUrl,
(LPVOID)lpBuffer,
dwSize,
&lpdwNumberOfBytesRead) ;
if (lpdwNumberOfBytesRead == 0)
bLoop = false ;
else
{
lpBuffer[lpdwNumberOfBytesRead] = '\0';
FILE *fp;
fp=fopen("c:\\2.txt","w");
if(fp==NULL)
{
printf("\ncannot open file\n");
exit(1);
}
fprintf(fp,lpBuffer);
fclose(fp);
cout<<(LPCTSTR)lpBuffer<<endl;
}
delete lpBuffer;
}
cout<<"Open URL OK."<<endl;
break;
}
else
cout<<"Error: Can not open URL."<<endl;
// close Open URL
if (hOpenUrl != NULL)
InternetCloseHandle(hOpenUrl);
}
else
cout<<"Error: Can not create Internet Session."<<endl;
// close internet session
if (hInternet != NULL)
InternetCloseHandle(hInternet) ;
}
return 0;
}
不懂 但在google上发现这两个网页 不知道对你有没有帮助
http://www.qqkjl.com/delphi7/20101017/7962.html (不是C++代码的)
http://topic.csdn.net/t/20031015/13/2357921.html (VB代码的)
InternetSetOption(hInternet , INTERNET_OPTION_USERNAME, "用户名", 100);
InternetSetOption(hInternet , INTERNET_OPTION_PASSWORD, "密码", 100);
hInternet = InternetOpen("Application",
//INTERNET_OPEN_TYPE_PRECONFIG,
INTERNET_OPEN_TYPE_PROXY,
"HTTP=HTTP://proxy.software.com:8080", NULL,
INTERNET_FLAG_NO_CACHE_WRITE) ;
InternetSetOption(NULL, INTERNET_OPTION_USERNAME, "用户名", 100);
InternetSetOption(NULL, INTERNET_OPTION_PASSWORD, "密码", 100);