Я пытаюсь трансформировать Curl запрос:
curl -X POST "url" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@some-name.jpg;type=image/jpeg
в C# с использованием HttpClient
. Так как мне надо захватывать изображение с камеры и пересылать его на сервер. Но httpClient.PostAsync()
падает с ошибкой
Ошибка во время отправки
Я не могу понять, что я упустил, когда превращал Curl в C#.
_capture.Retrieve(_frame, 0);
byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
_frame.Bitmap.Save(stream, ImageFormat.Jpeg);
result = stream.ToArray();
}
pictureBox1.Image = _frame.Bitmap;
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
MultipartFormDataContent form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(result, 0, result.Length), "file", "@some-name.jpg");
System.Threading.Thread.Sleep(1000);
HttpResponseMessage response = await httpClient.PostAsync("url", form);
response.EnsureSuccessStatusCode();
httpClient.Dispose();
string sd = response.Content.ReadAsStringAsync().Result;
Пример отправки файла на сервер.
byte[] bytes = File.ReadAllBytes("some-name.jpg");
await PostAttachment(new Uri("https://"), bytes, "image/jpeg");
....
private async Task<byte[]> PostAttachment(Uri url, byte[] data, string contentType)
{
HttpContent content = new ByteArrayContent(data);
content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
using (var form = new MultipartFormDataContent())
{
form.Add(content);
using (var client = new HttpClient())
{
var response = await client.PostAsync(url, form);
return await response.Content.ReadAsByteArrayAsync();
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Попробовал отправлять сообщения в телеграм при помощи TLSharp (хабр, гитхаб)
Подскажите пожалуйста, есть ли возмлжность передать данные на клиент, который находится под NAT
Сидел пробовал написать Generic метод для получения значения типа из указателя, и вот случайно написал where T : unmanaged и этот код был успешно откомпилирован!