分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

HTTP GET请求

发布时间:2023-09-06 01:40责任编辑:顾先生关键词:GET

1.接口实现

CString HttpGetRequest(CString strServerName, int nPort, CString strUrl, CString sParam){ ???if (strServerName.IsEmpty()) ???{ ???????return ""; ???} ???if (strServerName.Mid(strServerName.GetLength() - 1, 1) == "/") ???{ ???????strServerName = strServerName.Mid(0, strServerName.GetLength() - 1); ???} ???if (strServerName.Find(L"http://") == 0) ???{ ???????int nLength = strlen("http://"); ???????strServerName = strServerName.Mid(nLength, strServerName.GetLength() - nLength); ???} ???if (strServerName.Find(L"https://") == 0) ???{ ???????int nLength = strlen("https://"); ???????strServerName = strServerName.Mid(nLength, strServerName.GetLength() - nLength); ???} ???????HINTERNET hInternet = (HINSTANCE)InternetOpen(L"User-Agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); ???if (!hInternet) ???{ ???????return ""; ???} ???HINTERNET hConnect = (HINSTANCE)InternetConnect(hInternet, strServerName, nPort, NULL, L"HTTP/1.1", INTERNET_SERVICE_HTTP, 0, 0); ???if (!hConnect) ???{ ???????if (hInternet) InternetCloseHandle(hInternet); ???????return ""; ???} ???CString strRequestParam = strUrl; ???if (!sParam.IsEmpty()) ???{ ???????strRequestParam = strUrl + L"?" + sParam; ???} ???????HINTERNET hRequest = (HINSTANCE)HttpOpenRequest(hConnect, L"GET", strRequestParam, L"HTTP/1.1", NULL, NULL, INTERNET_FLAG_RELOAD, 0); ???if (!hRequest) ???{ ???????if (hConnect) InternetCloseHandle(hConnect); ???????if (hInternet) InternetCloseHandle(hInternet); ???????return ""; ???} ???bool bRet; ???????//bRet = HttpAddRequestHeaders(hRequest,"Content-Type: application/x-www-form-urlencoded",Len(FORMHEADERS),HTTP_ADDREQ_FLAG_REPLACE | HTTP_ADDREQ_FLAG_ADD); ?????bRet = HttpSendRequest(hRequest, NULL, 0, NULL, 0); ???std::string strResponse; ???while (TRUE) ???{ ???????char cReadBuffer[4096]; ???????unsigned long ulReadByteSize; ???????bRet = InternetReadFile(hRequest, cReadBuffer, sizeof(cReadBuffer)-1, &ulReadByteSize); ???????if (!bRet || !ulReadByteSize)break; ???????cReadBuffer[ulReadByteSize] = 0; ???????strResponse = strResponse + cReadBuffer; ???} ???if (hRequest) InternetCloseHandle(hRequest); ???if (hConnect) InternetCloseHandle(hConnect); ???if (hInternet) InternetCloseHandle(hInternet); ???CString csResponse = UTOCS(strResponse); ???return csResponse;}

2.调用测试

CString sRet = TaskMgr::GetInstance()->HttpGetRequest("https://passport.cnblogs.com", 80, "agreement.html", "");

3.返回结果

HTTP GET请求

原文地址:https://www.cnblogs.com/sz-leez/p/8398219.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved