Как преобразовать WebClient в HttpClient C# WinForms

Мне нужно преобразовать устаревший код веб-клиента в httpclient.

using WebClient Client = new();
Client.Headers["User-Agent"] = CompanyName + "/" + ProductName;
byte[] responseBytes = Client.UploadFile("http://blahblah.com/upload.php", fileimage);
string response = Encoding.Default.GetString(responseBytes);
_ = MessageBox.Show(response, Text);

Мне нужен точно такой же способ сделать это. Я видел другие ответы, но ни один из них не соответствует моим потребностям.

Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Laravel - это мощный PHP-фреймворк, используемый для создания масштабируемых и надежных веб-приложений. Одним из преимуществ Laravel является его...
Что такое двойные вопросительные знаки (??) в JavaScript?
Что такое двойные вопросительные знаки (??) в JavaScript?
Как безопасно обрабатывать неопределенные и нулевые значения в коде с помощью Nullish Coalescing
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как сделать компонент справочного центра с помощью TailwindCSS
Как сделать компонент справочного центра с помощью TailwindCSS
Справочный центр - это веб-сайт, где клиенты могут найти ответы на свои вопросы и решения своих проблем. Созданный для решения многих распространенных...
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
0
0
64
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Самый простой способ загрузить файл — это что-то вроде этого. Однако,

Лучше использовать HttpClientFactory для создания экземпляра httpclient.

var client = new HttpClient
{
    BaseAddress = new("http://blahblah.com/upload.php")
};
 
await using var stream = System.IO.File.OpenRead("filePathHere");
using var request = new HttpRequestMessage(HttpMethod.Post, "file");
request.Headers.Add("User-Agent",CompanyName + "/" + ProductName);
using var content = new MultipartFormDataContent
{
    { new StreamContent(stream), "file", "fileNameHere" }
};

request.Content = content;

var response = await client.SendAsync(request);
MessageBox.Show(response, Text);
Ответ принят как подходящий

1- read AllByte файла в массив upfilebytes

2-создать новые HttpClient и MultipartFormDataContent

3- рекламаd byte array to content

4-upload MultipartFormDataContent контент асинхронный и store response в ответ.

var upfilebytes = File.ReadAllBytes("fileimage");

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", CompanyName + "/" + ProductName);
MultipartFormDataContent content = new MultipartFormDataContent();
ByteArrayContent baContent = new ByteArrayContent(upfilebytes);

content.Add(baContent, "File", "filename.png");

 var response = await client.PostAsync("http://blahblah.com/upload.php", content);

 var responsestr = await response.Content.ReadAsStringAsync();

MessageBox.Show(response, responsestr);

Другие вопросы по теме