我正在尝试从soundcloud获得响应。这是我的密码。
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上的垃圾。我怎么才能解决这个问题?
谢谢!
发布于 2016-04-02 05:17:29
我只是在PCL中使用了您的代码,我只更改了url (到https)以满足iOS ATS的需求,并从异步方法调用它。在iOS设备上运行似乎很好。我在PCL中获取了对Microsoft.Net.Http的引用,在PCL 和平台特定项目(通过NuGet)中获取了ModernHttpClient的引用。
某些PCL视图模型类中的代码:
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页面类中:
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; }
}希望这能有所帮助。
发布于 2018-08-16 08:17:44
我也有同样的问题。我用以下方法修正了它:
var response = httpClient.GetAsync(ApiUrl).ConfigureAwait(false).GetAwaiter().GetResult();你可以试试。
https://stackoverflow.com/questions/36367702
复制相似问题