簡體   English   中英

restsharp postman 代碼多部分發布請求將 0kb 圖像發送到 JIRA

[英]restsharp postman code multipart post request sending 0kb images to JIRA

我正在通過他們的 rest API 將圖像發布到 JIRA 票證(需要帶有自定義標題的多部分帖子)。 在 postman 中一切正常,它生成的 restsharp 代碼如下:

var client = new RestClient("jira link here");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Connection", "keep-alive");
request.AddHeader("Content-Length", "31321");
request.AddHeader("Cookie", "atlassian.xsrf.token=BMR0-T49H-M7PK-ZG4J_4f2a8b5df5dfd91780d88b5ea26f8de0_lin; JSESSIONID=CE20BD6E7D3FABA7A0E8F9403907CD97");
request.AddHeader("Accept-Encoding", "gzip, deflate");
request.AddHeader("Host", "classified");
request.AddHeader("Postman-Token", "b5f2a773-532a-47b7-83bd-36c3cce16b55,d07661e4-abf5-408e-be59-0360938b6b77");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "*/*");
request.AddHeader("User-Agent", "PostmanRuntime/7.18.0");
request.AddHeader("Authorization", "classified");
request.AddHeader("X-Atlassian-Token", "no-check");
request.AddHeader("Content-Type", "multipart/form-data");
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"1280px-Microsoft_Azure_Logo.svg - Copy.png\"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

我懷疑這個問題可能沒有圖像的完整路徑,嘗試添加路徑,現在它正在發布圖像,但圖像是空白的,0kb。 發布到 JIRA 時,圖像名稱是正確的。

圖像似乎是正確的,但名稱正確的是空白。

我也試過包括 request.addFile("x",@path); 還是不行。

這是來自服務器的響應:在此處輸入圖像描述

事實證明,postman 在其自動生成的代碼中添加了一堆額外的東西,無論如何 postman 上的代碼生成需要修復,這是我修復我的方法:

RestClient restClient = new RestClient("link here");
            RestRequest restRequest = new RestRequest("/attachments");
            restRequest.RequestFormat = DataFormat.Json;
            restRequest.Method = Method.POST;
            restRequest.AddHeader("Content-Length", int.MaxValue.ToString());
            restRequest.AddHeader("Authorization", "secret");
            restRequest.AddHeader("X-Atlassian-Token", "no-check");

            restRequest.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
            restRequest.AddHeader("Content-Type", "multipart/form-data");
            restRequest.AddFile("file", path);

            var response = restClient.Execute(restRequest);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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