2301_80219866 2024-10-04 17:18 采纳率: 37.5%
浏览 3
已结题

悬赏,发GET/POST请求的C/C++程序

用wininet库写一个可以向指定URL发GET/POST请求的C/C++程序,有会的私我,价格好说

img

  • 写回答

2条回答

  • 一轮明月照丘壑 2024-10-04 17:19
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    看起来您在尝试使用WinINet库在C++中发送GET和POST请求,但遇到了问题。我可以帮助您编写一个基本的示例程序,用于发送GET和POST请求。由于您的代码片段中存在一些格式问题和可能的错误,我将从头开始编写示例。

    首先,确保您的开发环境中包含了WinINet库,并且已经链接了wininet.lib库文件。下面是一个简单的示例,演示如何使用WinINet发送GET和POST请求:

    #include <iostream>
    #include <windows.h>
    #include <wininet.h>
    
    #pragma comment(lib, "wininet.lib")
    
    void sendGetRequest(const char* url) {
        HINTERNET hSession = InternetOpen("MyApplication", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
        if (hSession == NULL) {
            std::cerr << "Failed to open session." << std::endl;
            return;
        }
    
        HINTERNET hConnect = InternetOpenUrl(hSession, url, NULL, INTERNET_FLAG_RELOAD, 0);
        if (hConnect == NULL) {
            std::cerr << "Failed to connect to URL." << std::endl;
            InternetCloseHandle(hSession); // 关闭会话句柄
            return;
        }
    
        // 读取响应数据(此处省略读取逻辑)
        InternetCloseHandle(hConnect); // 关闭连接句柄
        InternetCloseHandle(hSession);  // 关闭会话句柄
    }
    
    void sendPostRequest(const char* url, const char* postData) {
        HINTERNET hSession = InternetOpen("MyApplication", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
        if (hSession == NULL) {
            std::cerr << "Failed to open session." << std::endl;
            return;
        }
    
        HINTERNET hConnect = InternetOpenUrl(hSession, url, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_POST | INTERNET_FLAG_NO_CACHE_WRITE, 0); // 设置POST标志
        if (hConnect == NULL) {
            std::cerr << "Failed to connect for POST." << std::endl;
            InternetCloseHandle(hSession); // 关闭会话句柄
            return;
        }
    
        // 设置POST数据长度和内容(此处省略设置逻辑)
        // 发送POST请求(此处省略发送逻辑)
        // 读取响应数据(此处省略读取逻辑)
        InternetCloseHandle(hConnect); // 关闭连接句柄
        InternetCloseHandle(hSession);  // 关闭会话句柄
    }
    
    int main() {
        const char* getUrl = "http://example.com"; // GET请求的URL示例
        const char* postUrl = "http://example.com/post"; // POST请求的URL示例
        const char* postData = "key1=value1&key2=value2"; // POST请求的数据示例,根据实际情况修改数据内容和格式
        sendGetRequest(getUrl); // 发送GET请求示例
        sendPostRequest(postUrl, postData); // 发送POST请求示例
        return 0;
    }
    

    请注意,上面的代码只是一个简单的示例,用于展示如何使用WinINet库发送GET和POST请求的基本流程。在实际应用中,您需要根据自己的需求进行更多的错误处理和数据处理。此外,还需要处理HTTP响应的具体内容,例如读取响应头、响应体等。如果您需要更详细的帮助或遇到特定问题,请提供更多信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月4日

悬赏问题

  • ¥20 IDEA 下 lombok 不生效,找不到get
  • ¥15 sas无法加载传输模块
  • ¥15 ABAQUS模拟钢管混凝土往复荷载,滞回曲线卸载荷载却比加载荷载大是为什么
  • ¥15 IOS设置了charels得代理,但是显示无互联网连接,无法打开chls.pro/ssl下载证书
  • ¥40 一维度流体仿真软件前端如何开发
  • ¥500 DELPHI环境安卓定位实时发送及回调消息展示
  • ¥15 易视腾is-E5-ngh怎么刷机,求各位们分享一下吧
  • ¥15 Androidstudio的程序,求各位帮帮我
  • ¥15 岩石声发射矩张量反演软件
  • ¥15 用Python完成一个任务