Gaurav Dixit Ответов: 1

Ошибка типа неподдерживаемого носителя, код -415 при попытке загрузить pdf-файл с помощью API в C#


Всем привет,
я получаю ошибку неподдерживаемого типа носителя, и код ошибки равен 415, когда я пытаюсь отправить pdf-файл с помощью api в c#. я использую приведенный ниже код. может ли кто-нибудь подсказать, что здесь происходит не так?..

string url = "My URL";



               var method = new HttpMethod("POST");
               HttpClient client = new HttpClient();
               //client.DefaultRequestHeaders.Add("ContentType", "application/json");
               client.DefaultRequestHeaders.Add("ContentType", "JSON");
               client.DefaultRequestHeaders.Add("Authorization", "Bearer CODE");
               MultipartFormDataContent form = new MultipartFormDataContent();
               HttpContent content = new StringContent("fileToUpload");
               form.Add(content, "fileToUpload");

               var stream = new FileStream("G:\\API response\\CA_checkAPiResponses\\fileFolder\\Test.pdf", FileMode.Open);
               content = new StreamContent(stream);

               Dictionary<string, string> parameters = new Dictionary<string, string>();
               parameters.Add("fileContents", "benemanuel");
               HttpContent DictionaryItems = new FormUrlEncodedContent(parameters);
               form.Add(DictionaryItems, "medicineOrder");

               content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") //  //form-data
               {
                   FileName = "Test.pdf"

               };
               form.Add(content);
               HttpResponseMessage response = (client.PostAsync(url, form)).Result;

               if (response.IsSuccessStatusCode)
               {
                   Response.Write("API is working  <br/>");

               }
               else
               {
                   Response.Write("API is Not Working currently <br/>");
               }
           }
           catch (Exception ex)
           {
               Response.Write("Some error occur.  <br/>");
           }


Что я уже пробовал:

Я попробовал следующее решение-

string url = "My URL";



               var method = new HttpMethod("POST");
               HttpClient client = new HttpClient();
               //client.DefaultRequestHeaders.Add("ContentType", "application/json");
               client.DefaultRequestHeaders.Add("ContentType", "JSON");
               client.DefaultRequestHeaders.Add("Authorization", "Bearer CODE");
               MultipartFormDataContent form = new MultipartFormDataContent();
               HttpContent content = new StringContent("fileToUpload");
               form.Add(content, "fileToUpload");

               var stream = new FileStream("G:\\API response\\CA_checkAPiResponses\\fileFolder\\Test.pdf", FileMode.Open);
               content = new StreamContent(stream);

               Dictionary<string, string> parameters = new Dictionary<string, string>();
               parameters.Add("fileContents", "benemanuel");
               HttpContent DictionaryItems = new FormUrlEncodedContent(parameters);
               form.Add(DictionaryItems, "medicineOrder");

               content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") //  //form-data
               {
                   FileName = "Test.pdf"

               };
               form.Add(content);
               HttpResponseMessage response = (client.PostAsync(url, form)).Result;

               if (response.IsSuccessStatusCode)
               {
                   Response.Write("API is working  <br/>");

               }
               else
               {
                   Response.Write("API is Not Working currently <br/>");
               }
           }
           catch (Exception ex)
           {
               Response.Write("Some error occur.  <br/>");
           }

Richard MacCutchan

Может быть, это как-то связано с тем, что вы указываете ContentType как JSON?

phil.o

Я собирался высказать еще одну дикую догадку, но оставлю ее вам.
Практически 5'd.

Richard MacCutchan

:)

Gaurav Dixit

тогда что еще я могу держать Гир в типе контента ?

Richard MacCutchan

Что ты имеешь в виду? Вы пытаетесь загрузить PDF-файл, так почему же вы говорите загрузчику, что это JSON?

Gaurav Dixit

я попробовал комментировать тип контента. но все равно получаю ту же ошибку. Какой тип контента я должен использовать для загрузки pdf-файла?

я немного погуглил какой-то пост, предполагающий, что ниже строки моего кода может возникнуть проблема-

содержание.Заголовки.ContentDisposition = new ContentDispositionHeaderValue("форма-данные")

Richard MacCutchan

Смотреть ниже.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Используйте правильный тип mime, как указано в разделе Типы MIME (IANA media types) - HTTP | MDN[^].