簡體   English   中英

如何從 URL 獲取 Json 對象,Windows Phone 8.1 (C#)

[英]How can I get my Json object from URL, Windows Phone 8.1 (C#)

假設我有這個數據:

{
    "A": "Z",
    "B": {
        "C": "Y",
        "D": "X"
    }
}

存儲在鏈接中。

現在我想在單擊按鈕時從我的 Windows 手機應用程序中獲取這些數據。

private void login(object sender, RoutedEventArgs e)
{
    //I want to read the json data here        
}

以前我嘗試過WebClient 的DownloadStringAsync方法。 但是這個類在 System.Net 中不再可用。 我想知道可以學習如何使用 url 獲取和發布數據的地方和文檔。

謝謝。

using (var client = new WebClient())
{
    var uri = "https://api.myjson.com/bins/2hxei";
    var result = System.Text.Encoding.Default.GetString(client.DownloadData(uri));

    // result : {"A":"Z","B":{"C":"Y","D":"X"}}
}

順便提一句。 WebClient在 .NET 中肯定仍然可用

如果您真的不想使用Web Client (舊版)而想使用較新的Http Client ,請使用以下代碼。

public static string GetJsonData()
{
    var promise = GetWebStringAsync("https://api.myjson.com/bins/2hxei");
    // do something else if needed
    var jsonData = promise.Result;
    return jsonData; //{"A":"Z","B":{"C":"Y","D":"X"}}
}

public static async Task<string> GetWebStringAsync(string uri)
{
    using (var client = new HttpClient())
    {
        var stringTask = await client.GetStringAsync(uri);
        return stringTask;
    }
}

在這里,如果你願意,除了做var stringTask = await client.GetStringAsync(uri)你也可以直接做var jsonString= client.GetStringAsync(uri).Result 但是您將失去aynchronous方法的好處,並且調用將是同步的。 調用線程將在那里等待,直到收到來自 Web 調用的響應。

暫無
暫無

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

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