[英]Remove content-disposition and *filename from MultipartFormDataContent
我需要使用 .Net 5 创建一个 POST 请求,格式如下:
邮政
https://someLMShost.edu/d2l/api/le/{version}/{orgUnit}/content/modules/{moduleId}/structure/
HTTP/1.1
内容类型:多部分/混合;边界=xxBOUNDARYxx
Content-Length: {POST body in length in bytes}
--xxBOUNDARYxx
内容类型:应用程序/json
{“IsHidden”:false,“IsLocked”:false,“ShortTitle”:“Test”,“Type”:1,“DueDate”:null,“Url”:“/content/extensibility/EXT-104/file.txt ", "StartDate": null, "TopicType": 1, "EndDate": null, "Title": "测试主题内容"}
--xxBOUNDARYxx
内容处置:表单数据; 名称=""; 文件名="文件.txt"
内容类型:文本/纯文本
这是一个示例文本文件
带有一些文字内容。
--xxBOUNDARYxx--
我的代码如下所示:
var apiResponse = new HttpResponseMessage();
var stringContent = new StringContent(content, Encoding.UTF8, "application/json");
stringContent.Headers.ContentType.CharSet = "";
var stringfile = new StringContent(file, Encoding.UTF8, "text/plain");
stringfile.Headers.ContentType.CharSet = "";
MultipartFormDataContent form = new MultipartFormDataContent
{
stringContent,
{ stringfile, "\"\"", "\"file.txt\"" }
};
apiResponse = await _client.PostAsync(request, form);
我的代码正在产生以下请求:
邮政
https://instance.desire2learn.com/d2l/api/le/1.60/329015/content/modules/9885759/structure/?x_a=qwerty&x_b=qwerty&x_c=qwert&x_d=qwerty&x_t=qwert HTTP/1.1
主机:instance.desire2learn.com
traceparent:00-aff8b6564150364bac900043e5f0daa7-a3512fc259a59c49-00
内容类型:multipart/form-data; 边界="27d7ac2d-6f96-4c17-84d8-2a93da333bab"
内容长度:565
--27d7ac2d-6f96-4c17-84d8-2a93da333bab
内容类型:应用程序/json
内容处置:表单数据
{"Title":"测试主题内容","ShortTitle":"Test","Type":1,"TopicType":1,"Url":"/content/enforced/Sandbox/testHTML.html","StartDate ":null,"EndDate":null,"DueDate":null,"IsHidden":false,"IsLocked":false}
--27d7ac2d-6f96-4c17-84d8-2a93da333bab
内容类型:文本/纯文本
内容处置:表单数据; 名称=""; 文件名="文件.txt" ; 文件名*=utf-8''%22file.txt%22
测试
--27d7ac2d-6f96-4c17-84d8-2a93da333bab--
我将如何 go 关于删除请求的粗体部分? 第一部分的“Content-Disposition: form-data”和第二部分的“; filename*=utf-8''%22file.txt%22”。
对于这种情况, MultipartFormDataContent可能不是正确的内容类型。 尝试使用MultipartContent ,如下所示。
var stringContent = new StringContent(content, Encoding.UTF8, "application/json");
stringContent.Headers.ContentType.CharSet = string.Empty;
var stringFile = new StringContent(file, Encoding.UTF8, "text/plain");
stringFile.Headers.ContentType.CharSet = string.Empty;
stringFile.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
FileName = file,
Name = "\"\""
};
var multiPartContent = new MultipartContent
{
stringContent,
stringFile
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.