2017-05-18 1 views
0

Mein Projekt erfordert eine GET, um einen Benutzer zu authentifizieren. Hier ist die CURL Ich versucheC# .net web.client (UploadString()) Mimik CURL ohne Daten

curl -H "Content-Type: application/json" -H "header1: headerData" -k -X GET https://url.com/x1/users/userSlug 

Die C# mit dem String.Empty

using (var client = new WebClient()) 
{ 
var urlEndPoint= URL + '/' + UserSlug; 

client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 
client.Headers.Add("header1", headerData); 
try 
{ 
PopulatedUser = serializer.Deserialize<User>(client.UploadString(new Uri(urlEndPoint), "GET", String.Empty)); 
return PopulatedUser; 
} 
catch (WebException e) 
    { 
    PopulatedUser = serializer.Deserialize<User>(new StreamReader(e.Response.GetResponseStream()).ReadToEnd()); 
//TODO: find server log code examples for errors 
return PopulatedUser; 
    } 
} 

zu imitieren, ich verwende ich

Innerexception = {"Kann keinen Inhalts-Body mit diesem Verb-Typ senden."}

Ich bin nicht sicher, wie damit umzugehen und die Antwort mit Benutzerdaten zurück zu erhalten.

Wenn ich den ROTATION-Befehl ausführen, bekomme ich zurück

{ "status": "ok", "Code": 200, "data": { "user": { „id ":" thisguy“, userFirstname: "bob" .... etc

+0

Und Ihre Frage ist ??? Was ist das Problem/Problem? Haben Sie beide Web-Anfragen mit einem Debug-Proxy wie fiddler2 überprüft? – DigiFriend

+0

und? Welches Problem haben Sie mit dem C# -Code? –

+0

Entschuldigung Jungs, ich dachte, ich habe den Fehler eingefügt, nur am unteren Rand hinzugefügt. –

Antwort

0

Sie sind nicht alles auf den Server hochgeladen, so sollten Sie nicht UploadString verwenden werden - upload würde in der Regel verwenden ein POST oder STOR (für ftp), aber nicht GET, wo wahrscheinlich die Dinge goi sind falsch.

Verwenden Sie stattdessen DownloadString. Es verwendet GET.

Anstatt also:

client.UploadString(new Uri(urlEndPoint), "GET", String.Empty) 

Verwendung:

client.DownloadString(new Uri(urlEndPoint)) 
+0

Seltsamerweise habe ich das auch versucht. Ich bekomme einen 403 Fehler –

+0

@JonnyP - haben Sie die Header überprüft, mit beiden Ansätzen? Auch hier wird ein Debugging-Proxy wie fiddler2 Ihnen helfen, herauszufinden, was vor sich geht. – DigiFriend

+0

10 Punkte @DigiFriend, du warst mit dieser Antwort richtig und ich lutsche, weil ich einen Tippfehler gemacht habe :( SHAME SHAME SHAME –