2016-07-20 21 views
0

Hallo Ich versuche, ein 3rd-Party-Rast Service mit VS2010 .net und dies ist Beispiel für cURL Befehl zu verbrauchen einige Daten von diesem Service zu erhalten:Wie konvertiert man den Curl-Befehl in HttpWebRequest in .net?

curl -k --header "X-Authorization: authorizationString" -G -X GET -d 'message' https://WebsiteAddress.com/api/command/914 
  1. Wie Parameter einstellen -G-X - BEKOMMEN?
  2. Wie -H Header-Parameter zu --header ändern? Oder muss ich das tun?

Das ist, was ich bisher habe: diese

using(WebClient webClient = new WebClient()) 
{ 
    webClient.Headers.Add("X-Authorization", "authorizationString"); 
    string response = webClient.DownloadString("https://WebsiteAddress.com/api/command/914?message"); 
} 

Lesen: curl.haxx.se/docs/manpage.html
Sie versuchen, eine Verbindung herzustellen HTTP GET

string authorizationString = "bla bla"; 
string message = "my Message"; 
string url = "https://WebsiteAddress.com/api/command/914"; 
var req = (HttpWebRequest)WebRequest.Create(url); 
req.ContentType = "application/json"; 
req.Method = "Get"; 
req.Headers.Add("X-Authorization", authorizationString); 

//bypassing untrusted certificate 
//if DUBUG 
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 
//end DEBUG 

using (var PostData = new StreamWriter(req.GetRequestStream())) 
{ 
    PostData.Write(message); 
    PostData.Flush(); 
} 

var response = (HttpWebResponse)req.GetResponse(); 
if (response.StatusCode == HttpStatusCode.OK) 
{ 
    //TO DO: 
} 
+0

Es sieht aus wie die Nachricht sollte in URL-Zeichenfolge sein, so was ich habe dies ändern: string message = "meine Nachricht"; string url = "https://WebsiteAddress.com/api/command/914"; dafür: string message = "meine Nachricht"; Zeichenfolge url = "https://WebsiteAddress.com/api/command/914" + Nachricht; Dann entfernen Sie mit (var PostData = new StreamWriter (req.GetRequestStream())) { PostData.Write (Nachricht); PostData.Flush(); } dies und es begann zu arbeiten; – Czarkek

Antwort

0

es so etwas wie das sein sollte INSECURE MIT EXTRA HEADER und 'Nachricht' wird mit Ihrer URL verknüpft.

+0

Wenn wir content.type auf "application/json" setzen, müssen wir Daten in JSON senden? Wenn ja, wie können wir einen String in ein JSON-Objekt in C# oder .NET konvertieren? – kvk30