/// OpenTween で必要な設定を施した HttpClientHandler インスタンスを生成します
/// </summary>
[SuppressMessage("Microsoft.Reliability", "CA2000:DisposeObjectsBeforeLosingScope")]
- public static WebRequestHandler CreateHttpClientHandler(bool streaming = false)
+ public static WebRequestHandler CreateHttpClientHandler()
{
var handler = new WebRequestHandler
{
- AutomaticDecompression = streaming ? DecompressionMethods.None
- : DecompressionMethods.GZip | DecompressionMethods.Deflate,
+ AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
};
if (Networking.Proxy != null)
/// このメソッドを使用する場合は、WebProxyChanged イベントが発生する度に HttpClient を生成し直すように実装してください。
/// </remarks>
[SuppressMessage("Microsoft.Reliability", "CA2000:DisposeObjectsBeforeLosingScope")]
- public static HttpClient CreateHttpClient(HttpMessageHandler handler, bool streaming = false)
+ public static HttpClient CreateHttpClient(HttpMessageHandler handler)
{
HttpClient client;
if (ForceIPv4)
else
client = new HttpClient(handler);
- client.Timeout = streaming ? Timeout.InfiniteTimeSpan
- : Networking.DefaultTimeout;
+ client.Timeout = Networking.DefaultTimeout;
client.DefaultRequestHeaders.Add("User-Agent", Networking.GetUserAgentString());
return client;
using System.Net.Http;
using System.Runtime.Serialization;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
using System.Web;
using OpenTween.Api;
private void InitializeHttpClients()
{
- this.http = InitializeHttpClient(this.AccessToken, this.AccessSecret, streaming: false);
- this.httpStreaming = InitializeHttpClient(this.AccessToken, this.AccessSecret, streaming: true);
+ this.http = InitializeHttpClient(this.AccessToken, this.AccessSecret);
+
+ this.httpStreaming = InitializeHttpClient(this.AccessToken, this.AccessSecret, disableGzip: true);
+ this.httpStreaming.Timeout = Timeout.InfiniteTimeSpan;
}
public async Task<T> GetAsync<T>(Uri uri, IDictionary<string, string> param, string endpointName)
}
}
- private static HttpClient InitializeHttpClient(string accessToken, string accessSecret, bool streaming = false)
+ private static HttpClient InitializeHttpClient(string accessToken, string accessSecret, bool disableGzip = false)
{
- var innerHandler = Networking.CreateHttpClientHandler(streaming);
+ var innerHandler = Networking.CreateHttpClientHandler();
innerHandler.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
+ if (!disableGzip)
+ innerHandler.AutomaticDecompression = DecompressionMethods.None;
+
var handler = new OAuthHandler(innerHandler,
ApplicationSettings.TwitterConsumerKey, ApplicationSettings.TwitterConsumerSecret,
accessToken, accessSecret);
- return Networking.CreateHttpClient(handler, streaming);
+ return Networking.CreateHttpClient(handler);
}
}
}