簡體   English   中英

從 MultipartFormDataContent 中刪除 content-disposition 和 *filename

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM