GetまたはGetTaskAsyncのタイムアウトを増やすにはどうすればよいですか?(Facebook C#SDK 6を使用)
15秒のタイムアウトがあるようです。
GetまたはGetTaskAsyncのタイムアウトを増やすにはどうすればよいですか?(Facebook C#SDK 6を使用)
15秒のタイムアウトがあるようです。
FacebookClient.HttpWebRequestFactoryを使用します。インテリセンスから隠されているため、設定によってはVSで表示されない場合があります。
/// <summary>
/// Http web request factory.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual Func<Uri, HttpWebRequestWrapper> HttpWebRequestFactory
{
get; set;
}
あなたはこのようなことをしたいかもしれません。
FacebookClient.HttpWebRequestFactory = url => {
var request = new HttpWebRequestWrapper((HttpWebRequest)WebRequest.Create(url));
request.Timeout = .....;
return request;
};
これには、少なくともv6が必要です。
v5の場合、保護されたメソッドをオーバーライドする必要があります。
/// <summary>
/// Creates the http web request.
/// </summary>
/// <param name="url">The url of the http web request.</param>
/// <returns>The http helper.</returns>
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
protected virtual HttpWebRequestWrapper CreateHttpWebRequest(Uri url);
このGetTaskAsync
バージョンでは、キャンセルトークンを渡す必要があります。Timeout
リクエストに設定された値は尊重されません。
var cancellationSource = new CancellationTokenSource(TimeSpan.FromSeconds(2));
await client.GetTaskAsync<T>(path, parameters, cancellationSource.Token);