如何在C#(.NET 4.5)中为HttpClient.GetAsync(URI)创建回调?

Ste*_*ütt 1 c# asynchronous .net-4.5 dotnet-httpclient

我想为Google搜索创建一个简单的异步请求.

根据谷歌的说法,最简单的方法是使用他们的JSON API和简单的curl请求

curl -e http://www.my-ajax-site.com \ 'https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris%20Hilton'
Run Code Online (Sandbox Code Playgroud)

我想拉出前5页的结果,并将每个结果的URL添加到数组中.我发现在HttpClient.GetAsync上找到任何解释良好的教程都难以置信.我没有比这更进一步:

public String[] search(String term = "")
{
    var rq = new HttpClient();
    var uri = new Uri("https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=site:" + term);
    rq.GetAsync(uri);
}
Run Code Online (Sandbox Code Playgroud)

我想这应该启动一个任务,所以我不会阻止主线程,但是如何在请求完成时注册一个回调方法?

TYY*_*TYY 7

由于GetAsync是您可以执行的任务

     rq.GetAsync(uri).ContinueWith((requestTask) => SomeMethod(requestTask););
Run Code Online (Sandbox Code Playgroud)