首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HttpResponseMessage.EnsureSuccessStatusCode()

使用HttpResponseMessage.EnsureSuccessStatusCode()
EN

Stack Overflow用户
提问于 2015-07-28 14:31:30
回答 1查看 2.6K关注 0票数 2

以下两种方法,getData1Async()getData2Async()本质上是相同的吗?如果是这样,为什么我不需要在getData2Async()方法中使用EnsureSuccessStatusCode()

代码语言:javascript
复制
class Program
{
    static void Main(string[] args)
    {
        try
        {
            string uri = "https://www.blahblah.com/getdata";
            Task<string> x = getData1Async(uri);
            System.Diagnostics.Debug.WriteLine(x.Result);
            Task<string> y = getData2Async(uri);
            System.Diagnostics.Debug.WriteLine(y.Result);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    static async Task<string> getData1Async(string uri)
    {
        HttpClient client = new HttpClient();
        HttpResponseMessage response = await client.GetAsync(uri);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }

    static async Task<string> getData2Async(string uri)
    {
        var httpClient = new HttpClient();
        return await httpClient.GetStringAsync(uri);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-07-28 14:59:16

getData1Async -在这里,您将获取类型为HttpResponseMessage的对象,如果您不能确保响应已成功完成并调用response.Content.Read...,则答案将是不确定的。getData2Async -直接调用httpClient本身来获取字符串,这在内部确保它只在接收到数据时返回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31668893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档