Ошибка типа неподдерживаемого носителя, код -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
Смотреть ниже.