簡體   English   中英

將curl php rest api調用轉換為C#代碼

[英]convert curl php rest api calls to c# code

我一直在嘗試將訪問json rest api的php代碼轉換為c#,但無法正常工作...

我無法獲得有效的回復。(400錯誤的請求)

這是我試圖轉換的curl:

curl --user bob@gmail.com:387653t253431a1b1d6687pl9836th5s \
--form url=http://bbc.com --form x-metrix-adblock=0 \
https://gtmetrix.com/api/0.1/test

這是我嘗試失敗的代碼:

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();
}

任何幫助,將不勝感激..

這不是您問題的直接答案,但我想告訴您,我已經發布了一個開源.Net客戶端庫,該庫簡化了GTMetrix.net API的使用。 提交測試並檢索結果很簡單;

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;
    ...
}

可以在GitHub GTmetrix-net上找到該項目(文檔和代碼)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM