首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpClient卡住

HttpClient卡住
EN

Stack Overflow用户
提问于 2016-04-02 00:09:04
回答 2查看 5K关注 0票数 2

我正在尝试从soundcloud获得响应。这是我的密码。

代码语言:javascript
复制
public static async Task<string> GetTheGoodStuff()
  {
     var client = new HttpClient(new NativeMessageHandler());
     var response = await client.GetAsync("http://api.soundcloud.com/playlists?client_id=17ecae4040e171a5cf25dd0f1ee47f7e&limit=1");
     var responseString = response.Content.ReadAsStringAsync().Result;
     return responseString;
   }

但这是var response = await client.GetAsync上的垃圾。我怎么才能解决这个问题?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-02 05:17:29

我只是在PCL中使用了您的代码,我只更改了url (到https)以满足iOS ATS的需求,并从异步方法调用它。在iOS设备上运行似乎很好。我在PCL中获取了对Microsoft.Net.Http的引用,在PCL 和平台特定项目(通过NuGet)中获取了ModernHttpClient的引用。

某些PCL视图模型类中的代码:

代码语言:javascript
复制
using System.Net.Http;
using System.Threading.Tasks;
using ModernHttpClient;

public class ItemsViewModel
{

...

    public async Task<string> GetPlaylist()
    {
        // Use https to satisfy iOS ATS requirements.
        var client = new HttpClient(new NativeMessageHandler());
        var response = await client.GetAsync("https://api.soundcloud.com/playlists?client_id=17ecae4040e171a5cf25dd0f1ee47f7e&limit=1");
        var responseString = await response.Content.ReadAsStringAsync();
        return responseString;
    }

...

}

然后,在实例化和使用视图模型实例的PCL页面类中:

代码语言:javascript
复制
public partial class ItemsPage : ContentPage
{
    public ItemsPage()
    {
        InitializeComponent();
        Vm = new ItemsViewModel();
        BindingContext = Vm;
    }

    protected override async void OnAppearing()
    {
        var playlist = await Vm.GetPlaylist();
        // Do something cool with the string, maybe some data binding.
    }

    // Public for data binding.
    public ItemsViewModel Vm { get; private set; }
}

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-08-16 08:17:44

我也有同样的问题。我用以下方法修正了它:

代码语言:javascript
复制
var response = httpClient.GetAsync(ApiUrl).ConfigureAwait(false).GetAwaiter().GetResult();

你可以试试。

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

https://stackoverflow.com/questions/36367702

复制
相关文章

相似问题

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