C# GET 请求和解析 JSON

7

我正在开发Windows 8中的Windows商店应用程序,使用Visual Studio 2012。我需要向特定URL发出GET请求,并获取JSON作为响应。我需要解析JSON以获取其中的值。我需要C#代码来执行上述功能。

2个回答

12
您可以使用HttpClient类。GetAsync方法允许您向指定的url发送GET请求:
public async Task<JsonObject> GetAsync(string uri)
{
    var httpClient = new HttpClient();
    var content = await httpClient.GetStringAsync(uri);
    return await Task.Run(() => JsonObject.Parse(content));
}

@Darin Dimitrov 你好,我已经编写了代码以获取响应。我需要知道如何从响应中获取JSON并解析JSON。 - Ramesh
@musefan,实际上我已经为POST准备好了。刚刚才发现我也可以重用GET。 - Ramesh
2
@musefan,回答问题取决于我的心情。现在我心情很好,所以我会回答各种问题。 - Darin Dimitrov
@DarinDimitrov,Visual Studio 抱怨返回类型应该是 JsonValue 而不是 JsonObject - Simple
@DarinDimitrov 这是糟糕的代码,因为它会阻塞后台线程。我复制了你的代码并运行,结果导致我的应用程序被阻塞。请参考:https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/ - Simple
显示剩余2条评论

1
您可以使用此示例代码来自MSDN
    var client = new HttpClient();
        var uri = new Uri("http://ponify.me/stats.php");
        Stream respStream = await client.GetStreamAsync(uri);
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(rootObject));
        rootObject feed = (rootObject)ser.ReadObject(respStream);
        System.Diagnostics.Debug.WriteLine(feed.SONGHISTORY[0].TITLE);

我正在使用上述代码。它运行良好。谢谢。 - Ramesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接