winhttp 发送 get 请求「建议收藏」

winhttp 发送 get 请求「建议收藏」由于微端要和服务器交互,而服务器又只有http协议的处理,所以需要用C++来模拟get或post请求。这是使用windowsapi来模拟get请求的,使用到的库有“winhttp”,头文件有“winhttp.h”,下面的代码来源于http://msdn.microsoft.com:12345678

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

由于微端要和服务器交互,而服务器又只有http协议的处理,所以需要用C++来模拟get或post请求。
这是使用windows api来模拟get请求的,使用到的库有“winhttp”,头文件有“winhttp.h”,下面的代码来源于http://msdn.microsoft.com

1
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
void 
getRequest(){
    
DWORD
dwSize = 0;
    
DWORD
dwDownloaded = 0;
    
LPSTR
pszOutBuffer;
    
BOOL
bResults = FALSE;
    
HINTERNET hSession = NULL,
              
hConnect = NULL,
              
hRequest = NULL;
 
    
hSession = WinHttpOpen(L
"A WinHTTP Example Program/1.0"
,
                           
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
                           
WINHTTP_NO_PROXY_NAME,
                           
WINHTTP_NO_PROXY_BYPASS, 0);
 
    
if
(hSession)
        
hConnect = WinHttpConnect(hSession, L
"oschina.net"
,
                                  
INTERNET_DEFAULT_HTTP_PORT, 0);
 
    
if
(hConnect)
        
hRequest = WinHttpOpenRequest(hConnect, L
"GET"
,
                                      
L
"/search?q=python"
,
                                      
NULL, WINHTTP_NO_REFERER,
                                      
WINHTTP_DEFAULT_ACCEPT_TYPES,
                                      
0);
 
    
if
(hRequest)
        
bResults = WinHttpSendRequest(hRequest,
                                      
WINHTTP_NO_ADDITIONAL_HEADERS,
                                      
0, WINHTTP_NO_REQUEST_DATA, 0,
                                      
0, 0);
 
    
if
(bResults)
        
bResults = WinHttpReceiveResponse(hRequest, NULL);
 
    
if
(bResults)
    
{
        
do
        
{
            
dwSize = 0;
            
if
(!WinHttpQueryDataAvailable(hRequest, &dwSize))
                
printf
(
"Error %u in WinHttpQueryDataAvailable.\n"
,
                       
GetLastError());
 
            
pszOutBuffer =
new
char
[dwSize+1];
 
            
ZeroMemory(pszOutBuffer, dwSize+1);
 
            
if
(!WinHttpReadData(hRequest, (
LPVOID
)pszOutBuffer,
                                 
dwSize, &dwDownloaded))
                
printf
(
"Error %u in WinHttpReadData.\n"
, GetLastError());
            
else
                
printf
(
"%s\n"
, pszOutBuffer);
 
            
delete
[] pszOutBuffer;
        
}
while
(dwSize > 0);
    
}
 
    
if
(!bResults)
        
printf
(
"Error %d has occurred.\n"
, GetLastError());
 
    
if
(hRequest) WinHttpCloseHandle(hRequest);
    
if
(hConnect) WinHttpCloseHandle(hConnect);
    
if
(hSession) WinHttpCloseHandle(hSession);
}

这段代码时模拟请求开源中国查询python相关信息的,亲测可用,做个记录方便以后查找。

地址:http://fastfood.sinaapp.com/?p=1250

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157727.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 互联网金融学习总结(5)——市场主流的风控模型简要学习总结

    互联网金融学习总结(5)——市场主流的风控模型简要学习总结分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对…

  • springboot 之 使用jasypt加密解密插件[通俗易懂]

    springboot 之 使用jasypt加密解密插件[通俗易懂]简单使用jasypt是一个java实现的安全框架1、该工具支持注解方式开启jasypt功能,以及注解方式引入一个或多个需要处理的配置文件。 2、该工具同时支持properties与yml文件的解析处理。 3、该工具支持自定义加解密类型和复写加解密方法。引入插件<dependency> <groupId>com.github.ulisesbocchio&…

  • 计算机负数补码_负数用补码表示如何理解

    计算机负数补码_负数用补码表示如何理解在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。2、补码与原码的转换过程几乎是相同的。数值的补码表示也分两种情况:(1)正数的补码:与原码相同。例如,+9的补码是00001001。(2)负数的补码:符号位为1

    2022年10月31日
  • Python之用虚拟环境隔离项目,并重建依赖关系

    下面将以安装django和mysqlclient介绍如何用虚拟环境隔离项目,并重建依赖关系。操作系统:windows10;python版本:python3.71.安装python虚拟环境(1)

    2021年12月30日
  • HAVING用法

    HAVING用法1语法:groupby字段having条件判断;groupby的用法我已经在上一篇经验中介绍了2还是已员工绩效表为例3我们如果就是查询每个部门成绩大于89的员工数,可以这样写:SELECTdept,COUNT(user_name)FROMec_usesWHEREscore&gt;89GROUPBYdept;对这个查询的过程进行分析,其实是:先查出绩效成绩大于89的员工记录…

  • sublime text3入门教程「建议收藏」

    sublime text3入门教程「建议收藏」作者:sam976转载需征得作者本人同意,谢谢。所谓工欲善其事必先利其器,编码过程合理熟练使用工具是优秀程序员必备技能,在诸多工具中,SublimeText无疑是一款利器,它界面优美、功能强悍、性能令人惊讶…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号