我正在移植一个使用 httpclient 库连接到我们的服务器的 W8 应用程序。
该应用程序的主要目的是发送图像,但是当我尝试在我的 WP8 上发送图片时出现 404 not found 错误(似乎微软将很多错误重新映射到 404),如果我检查服务器日志,我可以看到服务器在失败之前收到了大约 1/4 的图像。同样的功能似乎在我的 W8 应用程序中运行良好(未在 3G 上测试),如果我使用 Wifi 连接,则在 WP8 上运行。我认为问题可能是等待时间,所以我尝试添加 Keep-Alive 标头但没有成功。我目前的代码是:
using (HttpClient httpClient = new HttpClient())
{
httpClient.Timeout = TimeSpan.FromMinutes(10);
Stream streamW = new MemoryStream();
this.bSyncOK = await Send(streamW);
streamW.Seek(0, SeekOrigin.Begin);
HttpResponseMessage response = await httpClient.PostAsync(sUri, new StreamContent(streamW));
if (response.IsSuccessStatusCode)
{
Stream streamR = await response.Content.ReadAsStreamAsync();
this.bSyncOK = await Recv(streamR);
streamR.Dispose();
}
else
throw new HostNotFoundException();
}
同一台服务器用于在IOS和Android等其他平台上传图片没有问题。