Skip to content

Commit 859e84b

Browse files
committed
Use static HttpClient and remove proxy
1 parent 01d185c commit 859e84b

File tree

4 files changed

+28
-68
lines changed

4 files changed

+28
-68
lines changed

Cuiliang.AliyunOssSdk.sln

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 15
4-
VisualStudioVersion = 15.0.26020.0
4+
VisualStudioVersion = 15.0.27130.2026
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cuiliang.AliyunOssSdk", "src\Cuiliang.AliyunOssSdk.csproj", "{07E0FD05-ED53-49DC-AD10-D24685A388D3}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample", "tests\Sample\Sample.csproj", "{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample", "tests\Sample\Sample.csproj", "{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -19,30 +19,33 @@ Global
1919
GlobalSection(ProjectConfigurationPlatforms) = postSolution
2020
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2121
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
22-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x64.ActiveCfg = Debug|x64
23-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x64.Build.0 = Debug|x64
24-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x86.ActiveCfg = Debug|x86
25-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x86.Build.0 = Debug|x86
22+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x64.ActiveCfg = Debug|Any CPU
23+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x64.Build.0 = Debug|Any CPU
24+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x86.ActiveCfg = Debug|Any CPU
25+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Debug|x86.Build.0 = Debug|Any CPU
2626
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
2727
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|Any CPU.Build.0 = Release|Any CPU
28-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x64.ActiveCfg = Release|x64
29-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x64.Build.0 = Release|x64
30-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x86.ActiveCfg = Release|x86
31-
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x86.Build.0 = Release|x86
28+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x64.ActiveCfg = Release|Any CPU
29+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x64.Build.0 = Release|Any CPU
30+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x86.ActiveCfg = Release|Any CPU
31+
{07E0FD05-ED53-49DC-AD10-D24685A388D3}.Release|x86.Build.0 = Release|Any CPU
3232
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3333
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|Any CPU.Build.0 = Debug|Any CPU
34-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x64.ActiveCfg = Debug|x64
35-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x64.Build.0 = Debug|x64
36-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x86.ActiveCfg = Debug|x86
37-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x86.Build.0 = Debug|x86
34+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x64.ActiveCfg = Debug|Any CPU
35+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x64.Build.0 = Debug|Any CPU
36+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x86.ActiveCfg = Debug|Any CPU
37+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Debug|x86.Build.0 = Debug|Any CPU
3838
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|Any CPU.ActiveCfg = Release|Any CPU
3939
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|Any CPU.Build.0 = Release|Any CPU
40-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x64.ActiveCfg = Release|x64
41-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x64.Build.0 = Release|x64
42-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x86.ActiveCfg = Release|x86
43-
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x86.Build.0 = Release|x86
40+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x64.ActiveCfg = Release|Any CPU
41+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x64.Build.0 = Release|Any CPU
42+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x86.ActiveCfg = Release|Any CPU
43+
{A83B76BE-EAEA-4367-BC0C-28C20A9E6510}.Release|x86.Build.0 = Release|Any CPU
4444
EndGlobalSection
4545
GlobalSection(SolutionProperties) = preSolution
4646
HideSolutionNode = FALSE
4747
EndGlobalSection
48+
GlobalSection(ExtensibilityGlobals) = postSolution
49+
SolutionGuid = {961F679A-9DCD-42D9-8CE7-5B3F6B9019AD}
50+
EndGlobalSection
4851
EndGlobal

src/Api/Base/BaseOssCommand.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,13 @@ public async Task<OssResult<TResult>> ExecuteAsync()
6767
ServiceRequest request = BuildRequest();
6868

6969
//加入dateheader
70-
request.Headers[HttpHeaders.Date] = DateUtils.FormatRfc822Date(DateTime.UtcNow);
71-
70+
request.Headers[HttpHeaders.Date] = DateUtils.FormatRfc822Date(DateTime.UtcNow);
7271

7372
if (RequestContext.OssCredential.UseToken)
7473
{
7574
request.Headers[HttpHeaders.SecurityToken] = RequestContext.OssCredential.SecurityToken;
7675
}
7776

78-
7977
// 发送请求
8078
var caller = new ServiceCaller(RequestContext);
8179
HttpResponseMessage response = await caller.CallServiceAsync(request);

src/OssClient.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public OssClient(OssCredential credential, ClientConfiguration config)
4343
/// <returns></returns>
4444
public async Task<OssResult<ListBucketsResult>> ListBucketsAsync(string region)
4545
{
46-
4746
var cmd = new ListBucketCommand(_requestContext, region, new ListBucketsRequest());
4847
return await cmd.ExecuteAsync();
4948
}

src/Request/ServiceCaller.cs

Lines changed: 6 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namespace Cuiliang.AliyunOssSdk.Request
1616
/// </summary>
1717
public class ServiceCaller
1818
{
19+
private readonly static HttpClient _client = new HttpClient();
1920
private RequestContext _requestContext;
2021

2122
public ServiceCaller(RequestContext requestContext)
@@ -29,52 +30,15 @@ public ServiceCaller(RequestContext requestContext)
2930
/// <param name="serviceRequest"></param>
3031
/// <returns></returns>
3132
public async Task<HttpResponseMessage> CallServiceAsync(ServiceRequest serviceRequest)
32-
{
33-
//
34-
HttpClient client = null;
35-
36-
37-
38-
//
39-
// setup proxy
40-
//
41-
if (!string.IsNullOrWhiteSpace(_requestContext.ClientConfiguration.ProxyHost))
42-
{
43-
HttpClientHandler httpClientHandler = new HttpClientHandler()
44-
{
45-
Proxy = new MyProxy(string.Format("{0}:{1}", _requestContext.ClientConfiguration.ProxyHost, _requestContext.ClientConfiguration.ProxyPort)),
46-
PreAuthenticate = false,
47-
UseDefaultCredentials = true,
48-
};
49-
50-
if (!String.IsNullOrEmpty(_requestContext.ClientConfiguration.ProxyUserName))
51-
{
52-
httpClientHandler.Proxy.Credentials = String.IsNullOrEmpty(_requestContext.ClientConfiguration.ProxyDomain)
53-
? new NetworkCredential(_requestContext.ClientConfiguration.ProxyUserName, _requestContext.ClientConfiguration.ProxyPassword ?? string.Empty)
54-
: new NetworkCredential(_requestContext.ClientConfiguration.ProxyUserName, _requestContext.ClientConfiguration.ProxyPassword ?? string.Empty,
55-
_requestContext.ClientConfiguration.ProxyDomain);
56-
57-
httpClientHandler.UseDefaultCredentials = false;
58-
httpClientHandler.PreAuthenticate = true;
59-
}
60-
61-
client = new HttpClient(httpClientHandler);
62-
}
63-
else
64-
{
65-
client = new HttpClient();
66-
}
67-
68-
33+
{
6934
var request = new HttpRequestMessage(serviceRequest.HttpMethod,
7035
serviceRequest.BuildRequestUri(_requestContext));
7136

7237
//
7338
// setup headers
7439
//
75-
7640
// 超时时间,毫秒
77-
client.Timeout = TimeSpan.FromMilliseconds(_requestContext.ClientConfiguration.ConnectionTimeout);
41+
_client.Timeout = TimeSpan.FromMilliseconds(_requestContext.ClientConfiguration.ConnectionTimeout);
7842
foreach (var h in serviceRequest.Headers)
7943
{
8044
bool rtn = request.Headers.TryAddWithoutValidation(h.Key, h.Value);
@@ -86,14 +50,12 @@ public async Task<HttpResponseMessage> CallServiceAsync(ServiceRequest serviceRe
8650

8751
if (!string.IsNullOrWhiteSpace(_requestContext.ClientConfiguration.UserAgent))
8852
{
89-
client.DefaultRequestHeaders.UserAgent.TryParseAdd(_requestContext.ClientConfiguration.UserAgent);
53+
_client.DefaultRequestHeaders.UserAgent.TryParseAdd(_requestContext.ClientConfiguration.UserAgent);
9054

9155
}
9256

9357
// request content
94-
//
95-
96-
58+
//
9759

9860
if (serviceRequest.RequestContentType != RequestContentType.None
9961
&& (serviceRequest.HttpMethod == HttpMethod.Put || serviceRequest.HttpMethod == HttpMethod.Post))
@@ -118,11 +80,9 @@ public async Task<HttpResponseMessage> CallServiceAsync(ServiceRequest serviceRe
11880
// 因为传入的contenttype会被自动更改,所以在最后再进行签名处理
11981
SignatureHelper.SignRequest(serviceRequest, _requestContext.OssCredential, request);
12082

121-
122-
12383
// 需要增加是因为objectMeta和head API返回的消息体是空的,但是content-length却是实际object的长度,此处违反了协议。
12484
// 使用默认参数会自动读取content,导致异常。
125-
return await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
85+
return await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
12686
}
12787
}
12888
}

0 commit comments

Comments
 (0)