我正在使用“httpclient.net组件”获得这种奇怪的行为。
我正在上传一个post请求中的文件(1.1MB)。当小提琴手关掉的时候大约需要15秒当小提琴手打开的时候大约需要4秒。
我没有使用任何代理,使用tls1上传到https服务器。
我只发了一个请求,不确定是否能保持活力…
我还试着做了“telerik”提到的一些事情:
http://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app-
但没用,
还有我错过的设置吗?缓冲区大小?不知道怎么设置。
我就是这样上传文件的:
HttpClient _httpClient;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
...
...
...
MultipartFormDataContent multipartData = new MultipartFormDataContent();
multipartData.Add(new StreamContent(File.OpenRead(scanPath)), "fileToUpload","\"" + Path.GetFileName(scanPath) + "\"");
HttpResponseMessage response = await _httpClient.PostAsync("FileUpload", multipartData);
MyObject result = await GetResultFromResponse<MyObject>(response);
最佳答案
通过使用“bytearraycontent”而不是“streamcontent”来解决。
在“multipartfromdata”类的“add”方法中
这种类型的httpcontent大约快5-8倍。
multipartData.Add(new ByteArrayContent(File.ReadAllBytes(scanPath)), "fileToUpload", "\"" + Path.GetFileName(scanPath) + "\"");