2016-05-24 10 views
0

Ich habe versucht, PHP-Code zu konvertieren, die eine json Rest api in C# Zugriffe können aber nicht diese an die Arbeit ...convert curl php Rest api Anrufe C# -Code

Ich kann keine gültige Antwort zurück. . (400 Bad Anfrage)

Hier wird die Locke im zu konvertieren versuchen:

curl --user [email protected]:387653t253431a1b1d6687pl9836th5s \ 
--form url=http://bbc.com --form x-metrix-adblock=0 \ 
https://gtmetrix.com/api/0.1/test 

Hier ist der Code, den ich ohne Erfolg versucht haben:

content = "http://bbc.com"; 
string result; 
var req = HttpWebRequest.Create("https://gtmetrix.com/api/0.1/test"); 
req.Method = "POST"; 
var cc = new CredentialCache(); 

req.Credentials = new NetworkCredential(username, passkey); 
req.ContentType = "application/json"; 
byte[] bytes = UTF8Encoding.UTF8.GetBytes(content); 
req.ContentLength = bytes.Length; 

using (var stream = req.GetRequestStream()) 
{ 
    stream.Write(bytes, 0, bytes.Length); 
} 

using (var resp = req.GetResponse()) 
{ 
    var results = new StreamReader(resp.GetResponseStream()).ReadToEnd(); 
    result = JObject.Parse(results).ToString(); 
} 

Antwort

0

Dies ist keine direkte Antwort auf Ihre Frage, aber ich wollte Sie wissen lassen, dass ich eine Open Source .Net Client-Bibliothek veröffentlicht habe, die den Konsum der GTMetrix.net API vereinfacht . Das Einreichen eines Tests und das Abrufen der Ergebnisse ist einfach.

var client = Client(connection); 

var request = new TestRequest(
    new Uri("http://website.net"), 
    Locations.London, 
    Browsers.Chrome);       

var response = client.SubmitTestAsync(request); 

if (response.Result.StatusCode == HttpStatusCode.OK && 
    response.Result.Body.State == ResultStates.Completed) 
{ 
    var pageLoadTime = response.Result.Body.Results.PageLoadTime; 
    ... 
} 

Das Projekt (Dokumentation und Code) finden Sie hier GTmetrix-net on GitHub