1

GetまたはGetTaskAsyncのタイムアウトを増やすにはどうすればよいですか?(Facebook C#SDK 6を使用)

15秒のタイムアウトがあるようです。

4

2 に答える 2

5

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);
于 2012-06-07T12:25:05.903 に答える
0

このGetTaskAsyncバージョンでは、キャンセルトークンを渡す必要があります。Timeoutリクエストに設定された値は尊重されません。

var cancellationSource = new CancellationTokenSource(TimeSpan.FromSeconds(2));
await client.GetTaskAsync<T>(path, parameters, cancellationSource.Token);
于 2017-03-24T20:55:46.000 に答える