使用 Http Utils 将文件放入 URL 作为多部分形式编码

Put file to URL with Http Utils as multipart form encoded

是否可以将带有 Http Utils 的文件作为多部分形式编码?

这是我试过的:

var response = $"{_baseUrl}{address}".PutBytesToUrl(File.ReadAllBytes(filePath), "image/jpeg", "*/*",
    requestFilter: req =>
    {
        req.Headers["x-aws-acl"] = "private";
        req.Headers["content_type"] = "image/jpeg";
        req.Headers["X-Shopify-Access-Token"] = _accessToken;
    });

请求通过 200,但 API (Shopify) 没有图像。

我尝试了 运行 postman 中的请求,并且 postman 请求有效,shopify 之后有图像。

我使用 webhook.site 来查看 http utils 和 postman 有什么不同,邮递员似乎正在发送多部分编码形式。

以下是正在发送的导致没有图像的 http 实用程序 headers:

这里是邮递员[=3​​6=]:

有什么方法可以让 http 实用程序将图像作为多部分表单数据发送?

要将文件上传为 multipart/form-data,您需要使用 UploadFile APIs 接受重载以指定要使用的 HTTP 方法,例如:

var webReq = (HttpWebRequest)WebRequest.Create("http://example.org/upload");
webReq.Accept = MimeTypes.Json;
using var stream = uploadFile.OpenRead();
webReq.UploadFile(stream, uploadFile.Name, MimeTypes.GetMimeType(uploadFile.Name), 
    method:"PUT");