Превратить Curl post запрос в C# post

173
22 июля 2019, 23:50

Я пытаюсь трансформировать 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;
Answer 1

Пример отправки файла на сервер.

        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();                    
            }
        }
    }
READ ALSO
wpf не читает таблицу из accdb

wpf не читает таблицу из accdb

сделал по этому примеру https://wwwyoutube

166
Протухает авторизация телеграм

Протухает авторизация телеграм

Попробовал отправлять сообщения в телеграм при помощи TLSharp (хабр, гитхаб)

176
Передача данных по udp на клиент под NAT (C# winforms)

Передача данных по udp на клиент под NAT (C# winforms)

Подскажите пожалуйста, есть ли возмлжность передать данные на клиент, который находится под NAT

170
Что значит в generic where T : unmanaged?

Что значит в generic where T : unmanaged?

Сидел пробовал написать Generic метод для получения значения типа из указателя, и вот случайно написал where T : unmanaged и этот код был успешно откомпилирован!

199