web-dev-qa-db-fra.com

Comment envoyer un fichier et des données de formulaire avec HttpClient en C #

Comment envoyer un fichier et des données de formulaire avec le HttpClient?

J'ai deux façons d'envoyer un fichier ou des données de formulaire. Mais je veux envoyer les deux comme un formulaire HTML. Comment puis je faire ça? Merci.

Voici mon code:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    var client = new HttpClient();
    var requestContent = new MultipartFormDataContent();
    filename = openFileDialog1.FileName;
    array = File.ReadAllBytes(filename);
    var imageContent = new ByteArrayContent(array);
    imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("audio/*");
    requestContent.Add(imageContent, "audio", "audio.wav");
    var values = new Dictionary<string, string>
    {
        { "token", "b53b99534a137a71513548091271c44c" },
    };
    var content = new FormUrlEncodedContent(values);
    requestContent.Add(content);
    var response = await client.PostAsync("localhost", requestContent);
    var responseString = await response.Content.ReadAsStringAsync();
    txtbox.Text = responseString.ToString();
}
13
user2254798

Voici le code que j'utilise une méthode pour envoyer des fichiers et des données de la console à l'API

 static async Task uploaddocAsync()
                    {
                        MultipartFormDataContent form = new MultipartFormDataContent();
                        Dictionary<string, string> parameters = new Dictionary<string, string>();
                        //parameters.Add("username", user.Username);
                        //parameters.Add("FullName", FullName);
                        HttpContent DictionaryItems = new FormUrlEncodedContent(parameters);
                        form.Add(DictionaryItems, "model");

                        try
                        {
                            var stream = new FileStream(@"D:\10th.jpeg", FileMode.Open);
                            HttpClient client = new HttpClient();
                            client.BaseAddress = new Uri(@"http:\\xyz.in");

                            HttpContent content = new StringContent("");
                            content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                            {
                                Name = "uploadedFile1",
                                FileName = "uploadedFile1"
                            };
                            content = new StreamContent(stream);
                            form.Add(content, "uploadedFile1"); 

                            client.DefaultRequestHeaders.Add("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.dsfdsfdsfdsfsdfkhjhjkhjk.vD056hXETFMXYxOaLZRwV7Ny1vj-tZySAWq6oybBr2w");

                            var response = client.PostAsync(@"\api\UploadDocuments\", form).Result;
                            var k = response.Content.ReadAsStringAsync().Result;
                        }
                        catch (Exception ex)
                        {


                        }
                    }
0
Rajesh Kumar