2017-02-26 1 views
0

Je voudrais envoyer le fichier à un service Web avec d'autres parametrs
comme ceci:fichier Post avec C#

param1=value1&param2=value2&param3=IMAGE_FILE 

comment puis-je faire cela en C#
J'essaie ceci:

&param3=Convert.ToBase64String(File.ReadAllBytes(txtlogo.Text)) 

mais ce n'est pas le travail ..
alors avez-vous une solution?

Mise à jour:

Aussi j'essaie d'utiliser de HttpContent comme celui-ci (je ne sais pas qu'il est correct ou pas)

HttpContent stringContent = new StringContent("param1=param1&param2=param2"); 
      FileStream file = new FileStream(txtlogo.Text, FileMode.Open); 
      HttpContent fileStreamContent = new StreamContent(file); 
      using (var client = new HttpClient()) 
      using (var formData = new MultipartFormDataContent()) 
      { 
       formData.Add(stringContent, "param1", "param1"); 
       formData.Add(fileStreamContent, "file1", "file1"); 
       var response = client.PostAsync("url", formData).Result; 
       if (!response.IsSuccessStatusCode) 
       { 
        string ss = "s"; 
       } 
       string my = response.Content.ReadAsStringAsync().Result; 
      } 

et le serveur ne reçoit pas de données avec POST. ..

+0

Quand vous dites que ça ne marche pas? Avez-vous essayé de lire le 'param3' sur le serveur et vous ne recevez pas le fichier image? – Christos

+0

@Christos oui mais ce n'est pas le travail je ne sais pas pourquoi – MrUnknow

+1

en particulier, cette réponse à la question en double: http://stackoverflow.com/a/28242511/413399 –

Répondre

0

essayer avec la méthode get (simple,)

try 
{ 
    using (var wc = new WebClient()) 
    { 
     string url = "https://url.com/index.php?x=1222&y=filebase64-sdfsdfsdfsdfsdfsdfsdfsdfsd"; 
     // Get account from accessToken 
     response = wc.DownloadString(url); 
    } 
} 
catch (Exception ee) 
{ 
    Console.WriteLine("Coś nie tak z pobieraniem kont"); 
} 
+0

Et tutoriel http://www.terminally-incoherent.com/blog/2008/05/05/send-a-https-post-request-with-c/ –