2016-10-17 8 views
0

Ich versuche, einen Postanruf an meine Web-API zu machen, die auf dem lokalen Host ist. Aber ich bekomme folgenden FehlerXamarin Android Httppost Anfrage

result = {System.Net.WebException: The remote server returned an error: (415) Unsupported Media Type. at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x0005e] in /Users/builder/data/lanes/3511/f4db8a57/source/mono/mcs/class/System/Sy...

Kann jemand helfen? Unten ist mein Code:

private void click (Object sender, EventArgs e) 
    { 
     UserInfo user = new UserInfo(1, "[email protected]", "helloss"); 
     String data = JsonConvert.SerializeObject(user); 
     WebClient wc = new WebClient(); 
     wc.UploadStringAsync(new Uri("http://192.168.206.2:155/api/register"), data); 
     wc.UploadStringCompleted += Wc_UploadStringCompleted; 
    } 

    private void Wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) 
    { 
     var result = e.Error; 
    } 
+0

Haben Sie Ihr WebAPI Projekt gedebuggt beim Laufen die Xamarin-App, um sicherzustellen, dass es kein Problem mit Ihrem Server-Code ist? – chriszumberge

+0

@chriszumberche check meine bearbeitete Frage. – Naila

+0

Versuchen Sie, einen Accept-Header zu Ihrem WebClient hinzuzufügen. Wc.Headers.Add ("Accept", "application/json"); – chriszumberge

Antwort

1

Bis jetzt bekommt der Server nur eine Zeichenfolge von Ihnen und kann nicht wissen, ob es json, xml oder etwas anderes ist. Du musst es ihm nur sagen.

Sie können auf diese eine WebClient über:

wc.Add("Content-Type", "aplication/json"); 

Wenn Sie mit der HttpClient Sie ist über die Content Eigenschaft setzen:

request.Content = new StringContent("json", Encoding.UTF8, "application/json"); 
0

Die HTTP-Spezifikation besagt:

415 Nicht unterstützter Medientyp Der Statuscode 415 (Nicht unterstützter Medientyp) zeigt an, dass der Ursprungsserver, die Anforderung zu verweigert, weil die Nutzlast in einem Format, das von der Zielressource für diese Methode nicht unterstützt wird. Das Formatproblem kann auf den angegebenen Content-Type oder Content-Encoding der Anfrage oder auf eine direkte Überprüfung der Daten zurückzuführen sein.

Es scheint, dass Ihr Server Probleme mit dem Format hat ... versuchen Sie, die Header mit hinzufügen. ("Accept", "Application/Json");