Hung 返回 Follows 来自 Relationships 端点的数据
Hung returning Follows data from Relationships endpoint
我正在尝试 return 来自 Instagram API 的关注用户列表。我在使用 .NET 的 InstaSharp 包装器的沙盒帐户上。
用户通过身份验证后正在调用操作方法。
public ActionResult Following()
{
var oAuthResponse = Session["InstaSharp.AuthInfo"] as OAuthResponse;
if (oAuthResponse == null)
{
return RedirectToAction("Login");
}
var info = new InstaSharp.Endpoints.Relationships(config_, oAuthResponse);
var following = info.Follows("10").Result;
return View(following.Data);
}
尝试使方法一直异步,而不是进行阻塞调用 .Result
,这有导致死锁的风险
public async Task<ActionResult> Following() {
var oAuthResponse = Session["InstaSharp.AuthInfo"] as OAuthResponse;
if (oAuthResponse == null) {
return RedirectToAction("Login");
}
var info = new InstaSharp.Endpoints.Relationships(config_, oAuthResponse);
var following = await info.Follows("10");
return View(following.Data);
}
取决于 info.Follows
的实施方式。
查看 Github repo,API 在内部调用这样定义的方法
public static async Task<T> ExecuteAsync<T>(this HttpClient client, HttpRequestMessage request)
这看起来像确凿的证据,因为在此任务上调用 .Result
更高层的调用堆栈会导致您遇到死锁。
我正在尝试 return 来自 Instagram API 的关注用户列表。我在使用 .NET 的 InstaSharp 包装器的沙盒帐户上。
用户通过身份验证后正在调用操作方法。
public ActionResult Following()
{
var oAuthResponse = Session["InstaSharp.AuthInfo"] as OAuthResponse;
if (oAuthResponse == null)
{
return RedirectToAction("Login");
}
var info = new InstaSharp.Endpoints.Relationships(config_, oAuthResponse);
var following = info.Follows("10").Result;
return View(following.Data);
}
尝试使方法一直异步,而不是进行阻塞调用 .Result
,这有导致死锁的风险
public async Task<ActionResult> Following() {
var oAuthResponse = Session["InstaSharp.AuthInfo"] as OAuthResponse;
if (oAuthResponse == null) {
return RedirectToAction("Login");
}
var info = new InstaSharp.Endpoints.Relationships(config_, oAuthResponse);
var following = await info.Follows("10");
return View(following.Data);
}
取决于 info.Follows
的实施方式。
查看 Github repo,API 在内部调用这样定义的方法
public static async Task<T> ExecuteAsync<T>(this HttpClient client, HttpRequestMessage request)
这看起来像确凿的证据,因为在此任务上调用 .Result
更高层的调用堆栈会导致您遇到死锁。