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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pytest(6)重复运行用例pytest-repeat「建议收藏」

    Pytest(6)重复运行用例pytest-repeat「建议收藏」前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月28日
    4
  • gridbagconstraints什么意思_gridlayout布局参数

    gridbagconstraints什么意思_gridlayout布局参数GridBagConstraints参数详解gridBagConstraints参数gridx=2;//X=2gridy=0;//Y=0gridwidth=1;//横占一个单元格gridheight=1;//列占一个单元格weightx=0.0;//当窗口放大时,长度不变weighty=0.0;//当窗口放大时,高度不变

    2025年10月16日
    4
  • django 渲染_django开源项目

    django 渲染_django开源项目前言渲染模块的原理和解析模块是一样,drf默认的渲染有2种方式,一种是json格式,另一种是模板方式。渲染模块源码入口入口:APIView类中dispatch方法中的:self.response

    2022年7月29日
    8
  • 微信自动回复机器人含源码和安装包[通俗易懂]

    微信自动回复机器人含源码和安装包[通俗易懂]介绍微信自动回复机器人,有三个机器人可供选择,可在界面进行配置,可定时提醒,bs端程序,基于C#winfrom程序安装教程源码地址:https://gitee.com/xiaoyutou_647/wechat-auto-reply-robot/blob/master/README.md直接打开\Setup1\setup.exe即可安装需要安装的环境已经集成使用说明1.点击启动微信2.扫码登陆3.运行成功4.5.根据最前面的id开启自动恢复功能6.也可进行语音唤醒,一起

    2022年10月1日
    5
  • 回文字符串(Palindromic_String)「建议收藏」

    回文字符串(Palindromic_String)「建议收藏」一、基本概念回文字符串:是一个正读和反读都一样的字符串。二、问题与算法(1)判断思想:1、初始化标志flag=true;2、输入字符串str,并获取其长度len;3、定义并初始化游标i=0,j=len-1,分别指向字符串开头和末尾;4、比较字符str[i]和str[j],若i==j,转至7,否则往下执行5;5、若str[i]和str[j]相等…

    2022年6月5日
    38
  • [转载] 中华典故故事(孙刚)——11 见钱眼开

    [转载] 中华典故故事(孙刚)——11 见钱眼开

    2021年8月21日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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