2017-05-09 6 views
0

Je suis sans succès en train de télécharger par programme une image sur ezphotoshare.com avec C#. Ils utilisent Chevereto v1 comme base. Chaque fois que je tente de télécharger, je reçois "Le serveur distant a renvoyé une erreur: (400) Mauvaise demande.". Voici quelques-unes des choses que j'ai essayé:C# télécharger l'image locale à Chevereto API v1 ezphotoshare.com

int limit = 32766; 
     StringBuilder sb = new StringBuilder(); 
     int loops = img.Length/limit; 
     for (int i = 0; i <= loops; i++) 
     { 
      if (i < loops) 
      { 
       sb.Append(Uri.EscapeDataString(img.Substring(limit * i, limit))); 
      } 
      else 
      { 
       sb.Append(Uri.EscapeDataString(img.Substring(limit * i))); 
      } 
     } 
     string url = "http://ezphotoshare.com/api/1/upload/?key=######&source=" + sb + 
        "&format=json"; 
     var uploadImageRequest = (HttpWebRequest)WebRequest.Create(url); 
     uploadImageRequest.Method = "POST"; 

     var response = (HttpWebResponse)uploadImageRequest.GetResponse(); 

Voici quelque chose d'autre, j'ai essayé:

string img = ImageReturn(@"C:\avatar63New3.jpg"); 
using (WebClient client = new WebClient()) 
     { 
      byte[] response3 = client.UploadValues("http://ezphotoshare.com/api/1/", new NameValueCollection() 
      { 
       { "key", "######" },{"format","txt"},{"action","upload"},{"source",img} 
      }); 
      Console.WriteLine(XDocument.Load(new MemoryStream(response3))); 
     } 

private static string ImageReturn(string imageLocation) 
    { 
     using (Image image = Image.FromFile(imageLocation)) 
     { 
      using (MemoryStream m = new MemoryStream()) 
      { 
       //image.Save(m, image.RawFormat); 
       image.Save(m, ImageFormat.Jpeg); 
       byte[] imageBytes = m.ToArray(); 

       string base64String = Convert.ToBase64String(imageBytes); 
       return base64String; 
      } 
     } 
    } 

J'ai essayé de nombreuses variantes différentes du code ci-dessus avec pas de chance. Me pointer dans la bonne direction serait grandement apprécié. Merci.

Répondre

0

Essayez d'utiliser HttpClient manière

exemple simple comment utiliser HttpClient:

https://stackoverflow.com/a/39414248/2154577

+0

Merci, mais ce projet utilise le cadre 4.5 et je ne semble pas être en mesure d'utiliser la nouvelle façon sans changer le cadre. D'autres suggestions? – Roro

+0

Je comprends votre problème, avez-vous déjà testé l'API, en utilisant un facteur par exemple? Si oui, a été réussi? – Vimaciel