gpt4 book ai didi

c++ - 如何为 session 中的多个放置请求重用相同的 HTTPS 连接?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:53:03 27 4
gpt4 key购买 nike

为了将文件发送到服务器,我在 Windows 中执行了一个 HTTPS 放置请求,如下所示:

hSession = WinHttpOpen(  L"Agent/1.0",..
hConnect = WinHttpConnect(hSession,..
hRequest = WinHttpOpenRequest( hConnect, L"PUT",..
WinHttpSetCredentials(hRequest,..
WinHttpAddRequestHeaders( hRequest,..
WinHttpSendRequest( hRequest,..
WinHttpWriteData(hRequest,..
WinHttpReceiveResponse(hRequest,..
WinHttpQueryHeaders(hRequest,..
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);

这个命令包针对每个应该发送到服务器的文件运行。为每个要发送的文件从头开始建立连接会产生额外的开销。现在我正在寻找一种方法来减少这种开销。

所以我有两个问题:

  • 是否需要为每个 put 请求打开和关闭新的 HTTPS 连接?
  • 有没有一种方法可以建立 session 并为该 session 中的许多放置请求重用相同的 HTTPS 连接?

最佳答案

答案如下:

  1. 没有。一个连接可以执行一堆请求。
  2. 这是代码草稿:

    hSession = WinHttpOpen( L"Agent/1.0",..
    hConnect = WinHttpConnect(hSession,..
    for (all_files_to_upload) {
    hRequest = WinHttpOpenRequest( hConnect, L"PUT",..
    WinHttpSetCredentials(hRequest,..
    WinHttpAddRequestHeaders( hRequest,..
    WinHttpSendRequest( hRequest,..
    WinHttpWriteData(hRequest,..
    WinHttpReceiveResponse(hRequest,..
    WinHttpQueryHeaders(hRequest,..
    WinHttpCloseHandle(hRequest);
    }

    if (hConnect) WinHttpCloseHandle(hConnect);
    if (hSession) WinHttpCloseHandle(hSession);

关于c++ - 如何为 session 中的多个放置请求重用相同的 HTTPS 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com