C# HttpClient MultipartFormDataContent отправляет целочисленные значенияC#

Место общения программистов C#
Ответить
Anonymous
 C# HttpClient MultipartFormDataContent отправляет целочисленные значения

Сообщение Anonymous »

Я тестировал этот API и могу заставить его работать только при использовании этого RestClient. Этот RestClient хочет установить около 20 других пакетов в мой проект, поэтому я хотел бы, чтобы он работал с HttpClient. Я считаю, что эта ошибка возникает из-за статуса и приоритета двух целых чисел, и помощь была бы отличной.
GitHub
https://github.com/freshworks /fresh-samples/blob/master/C-Sharp/CreateTicketWithAttachment.cs
Работает:
var options = new RestClientOptions(_freshdeskUrl)
{
Authenticator = new HttpBasicAuthenticator(apiKey, "X")
};
var client = new RestClient(options);

var request = new RestRequest("", Method.Post);

request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "multipart/form-data");
request.AddParameter("email", "tom@outerspace.com");
request.AddParameter("subject", "panel can't see files");
request.AddParameter("description", "confirm whether received");
request.AddParameter("name", "Name");
request.AddParameter("status", "2");
request.AddParameter("priority", "1");

var response = client.Execute(request);

Console.WriteLine(response);

Не работает:
HttpClient httpClient = new HttpClient();
string authInfo = apiKey + ":X";
var byteArray = new UTF8Encoding().GetBytes(authInfo);
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
MultipartFormDataContent form = new MultipartFormDataContent();
form.Add(new StringContent("panel can't see files"), "username");
form.Add(new StringContent("tom@outerspace.com"), "email");
form.Add(new StringContent("confirm whether received"), "description");
form.Add(new StringContent("2"), "status");
form.Add(new StringContent("1"), "priority");

HttpResponseMessage response = await httpClient.PostAsync(_freshdeskUrl, form);

//response.EnsureSuccessStatusCode();
httpClient.Dispose();

Ошибка возвращена с сервера
StatusCode: 201, ReasonPhrase: 'Created', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
Date: Wed, 09 Oct 2024 14:05:36 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Status: 201 Created
Cache-Control: no-store
Strict-Transport-Security: max-age=63072000; includeSubDomains
X-Freshservice-Api-Version: latest=v2; requested=v2
Pragma: no-cache
X-Request-ID: b27d2c81-78c7-96af-8f5e-5c24fbecc271
Location: https://nccnusersupport.freshservice.co ... 1027178338
X-Envoy-Upstream-Service-Time: 321
X-Fw-Ratelimiting-Managed: true
X-Ratelimit-Total: 140
X-Ratelimit-Remaining: 139
X-Ratelimit-Used-Currentrequest: 1
X-Trace-Id: 00-da1535c2223299d7d3040faac49b8719-e0b5e2503d7f2fb5-01
Nel: { "report_to": "nel-endpoint-freshservice", "max_age": 2592000, "include_subdomains": true}
Report-To: { "group": "nel-endpoint-freshservice", "max_age": 2592000, "include_subdomains": true, "endpoints": [{"url": "https://edge-admin.us-east-1.freshedge. ... eshservice"}]}
Server: fwe
Content-Type: application/json; charset=utf-8
Expires: Wed, 13 Oct 2010 00:00:00 UTC
}}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ger-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»