wxWidgets wxWebRequest 是否支持文件上传?

问题描述 投票:0回答:1

我试图用 wxWebRequest 库发送一个 curl 命令。 工作卷曲请求如下所示:

curl -X POST "http://localhost:3000/page/auth/uploadFile?serialNumber=S123"
-H "accept: */*"
-H "language: en"
-H "Authorization: Bearer abcdefghijklmnopqrst"
-H "Content-Type: multipart/form-data"
-F "uploadFile=@./localUploadFile.txt;type=text/plain"

我能找到的唯一有用的方法是

webRequest::SetData
但我找不到如何利用它发送
curl -F (form-data)

void Upload::UploadFile(wxString resultFile, wxString token) {
    wxWebRequest request = tokenReq.GetDefault().CreateRequest(
        this,
        "http://localhost:3000/page/auth/uploadFile?serialNumber=S123"
);

request.SetMethod("POST");
request.SetHeader("accept", "*/*");
request.SetHeader("language", "en");
wxString tokenText = "Bearer " + token;
request.SetHeader("Authorization", tokenText);
request.SetHeader("Content-Type", "multipart/form-data; charset=UTF-8");

std::unique_ptr<wxInputStream> is(new wxFileInputStream(resultFile));
request.SetData(is.release(), "text/plain; charset=UTF-8");`

我知道这行不通,但这是我唯一想到的。

这甚至可能与

wxWebRequest
有关吗?

c++ wxwidgets
1个回答
0
投票

不,目前

wxWebRequest
本身不支持multipart/form-data。当然,您仍然可以为此使用它,但是您需要按照 RFC 描述的格式对数据进行编码,或者使用另一个库来完成它。

© www.soinside.com 2019 - 2024. All rights reserved.