一、GET 数据,下载网页,文件等,用于可下载的文件,不能用于服务端运行的程序,比如.aspx文件等,否则会返回500错误。
1
CString strSentence, strWriteName="1.htm";
2
CString strFileName="http://localhost/InDesign/" + strWriteName;
3
4
CInternetSession sess;
5
CHttpFile* fileGet;
6
try
7
{
8
fileGet=(CHttpFile*)sess.OpenURL(strFileName);
9
}
10
catch(CException* e)
11
{
12
fileGet = 0;
13
throw;
14
}
15
16
if(fileGet)
17
{
18
DWORD dwStatus;
19
DWORD dwBuffLen = sizeof(dwStatus);
20
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
21
22
if( bSuccess && dwStatus>= 200&& dwStatus<300 )
23
{
24
CStdioFile fileWrite;
25
if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))
26
{
27
while(fileGet->ReadString(strSentence))
28
{
29
fileWrite.WriteString(strSentence+"\n");
30
}
31
fileWrite.Close();
32
AfxMessageBox("下载完毕");
33
}
34
else
35
{
36
AfxMessageBox("本地文件"+strWriteName+"打开出错.");
37
}
38
}
39
else
40
{
41
strSentence.Format("打开网页文件出错,错误码:%d", dwStatus);
42
AfxMessageBox(strSentence);
43
}
44
fileGet->Close();
45
delete fileGet;
46
}
47
else
48
AfxMessageBox("不能找到网页文件!");
49
50
sess.Close();

2

3

4

5

6

7



8

9

10

11



12

13

14

15

16

17



18

19

20

21

22

23



24

25

26



27

28



29

30

31

32

33

34

35



36

37

38

39

40



41

42

43

44

45

46

47

48

49

50

二、POST 数据,比如用于提交注册信息等
1
CString strHttpName="http://localhost/TestReg/RegForm.aspx"; // 需要提交数据的页面
2
CString strFormData = "username=abc&password=123"; // 需要提交的数据
3
4
CInternetSession sess;
5
CHttpFile* fileGet;
6
CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); // 请求头
7
8
try
9
{
10
fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件
11
}
12
catch(CException* e)
13
{
14
fileGet = 0;
15
throw;
16
}
17
18
CString strSentence, strGetSentence = "";
19
if(fileGet)
20
{
21
DWORD dwStatus;
22
DWORD dwBuffLen = sizeof(dwStatus);
23
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
24
if( bSuccess && dwStatus>= 200 &&dwStatus<300 )
25
{
26
BOOL result = fileGet->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
27
while(fileGet->ReadString(strSentence)) // 读取提交数据后的返回结果
28
{
29
strGetSentence = strGetSentence + strSentence + char(13) + char(10);
30
}
31
AfxMessageBox(strGetSentence); // 显示返回网页内容
32
}
33
else
34
{
35
strSentence.Format("POST出错,错误码:%d", dwStatus);
36
AfxMessageBox(strSentence);
37
}
38
39
fileGet->Close();
40
delete fileGet;
41
}
42
else
43
AfxMessageBox("不能找到网页文件!");
44
45
sess.Close();
46

2

3

4

5

6

7

8

9



10

11

12

13



14

15

16

17

18

19

20



21

22

23

24

25



26

27

28



29

30

31

32

33

34



35

36

37

38

39

40

41

42

43

44

45

46
