Xamarin.Forms HttpWebResponse挂起/冻结

时间:2017-02-17 00:04:56

标签: c# xamarin xamarin.forms httpwebrequest

我的HttpWebResponse

中的Task<T>对象出现问题
public async Task<string> Get(string url)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(urlAddress);
        WebRequest request = WebRequest.Create(url);

        Debug.WriteLine($"CHECKING 5000");

        using (var resp = (HttpWebResponse)await request.GetResponseAsync() as HttpWebResponse)
        {
            Debug.WriteLine($"CHECKING 10000");

            if (resp.StatusCode == HttpStatusCode.OK)
            {
                //var json = await result.Content.ReadAsStringAsync();
                //status = JsonConvert.DeserializeObject<MyResultObject>(json);

                Debug.WriteLine($"CHECKING = {resp.StatusCode}");
            }
        }
    }

    return "";
}

我有一些Debug.WriteLine()可以轻松查看我的代码所属的部分。

我可以看到 Debug.WriteLine($&#34; CHECKING 5000&#34;);
我看不到 Debug.WriteLine($&#34; CHECKING 10000&#34;);

我可以在浏览器中访问该网站,所以我不确定这里的问题。

我该怎么做才能了解为什么它不起作用然后修复它?

1 个答案:

答案 0 :(得分:3)

试试这个

public async Task<string> Get(string url)
{

    Debug.WriteLine($"CHECKING 5000");

    using (var client = new HttpClient())
    {
        Debug.WriteLine($"CHECKING 10000");

        var resp = await client.GetAsync (url);

        //you can replace the if below with response.IsSuccessStatusCode
        if (resp.StatusCode == HttpStatusCode.OK)
        {
            Debug.WriteLine($"CHECKING = {resp.StatusCode}");
        }

    }

    return String.Empty;
}