Frage


Ich versuche, ein Foto in eine REST-API in einer Windows Phone 7-Anwendung mithilfe von RESTSHARP für meine Get / Posts hochzuladen.
Die Postparameter sind wie folgt:

foto : Das Foto, das als Multipart / Form-Daten verschlüsselt ist
photo_album_id : Bezeichner eines vorhandenen Fotoalbums, das ein Ereignis oder eine Gruppe sein kann Album

Ich habe meine Anfrage erstellt, aber jedes Mal bekomme ich den generationspflichtigen "{\"details\":\"missing photo parameter\",\"problem\":\"The API request is malformed\"}\n

Mein Foto-Parameter sieht so aus:

"----------------------------- 8cd9bfbafb3ca00 \ r \ ncontent-disposition: formsdaten; Name= \" Dateiname \ " ; Dateiname=\ "Somefile.jpg \" \ r \ ncontent-type: image / jpg \ r \n\ r \n(einiger binärer Junk hier aufgeführt) \ r \n------------- -------------------- 8cd9bfbafb3ca00 - "

Ich bin mir nicht ganz sicher, ob es sich um ein Problem darin handelt, wie ich die binären Daten für das Image darstellende (derzeit in meinem phototaskupplettierten Ereignis, habe ich den Inhalt von E.ChosenPhoto in ein Byte [] gelesen und das an einen weitergeben Helper-Methode zum Erstellen der Formatendaten) oder wenn ich das Formular einfach nicht richtig erstellen kann.

Ich versuche nur, dies einfach wie möglich zu tun, dann kann ich den Refaktor, sobald ich weiß, wie alles funktioniert. generasacodicetagpre.

War es hilfreich?

Lösung

Hammock for Windows Phone makes this real simple. You just add the file to the request using the AddFile method and pass it the photo stream.

        var request = new RestRequest("photo", WebMethod.Post);
        request.AddParameter("photo_album_id", _album.album_id);
        request.AddFile("photo", filename, e.ChosenPhoto);

Andere Tipps

Hum are you sure that your PostForm is correct ? The content-* params should be set in the headers of your POST and not in the body ?

var request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Add(HttpRequestHeader.Authorization,"blabla");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top