我将 Apache DefaultHttpClient 与 HttpPut 结合使用,使用 REST API 进行文件上传。从 Windows 运行时非常慢,它发送 240 kb/秒。但是当我从 MAC 运行相同的文件时它发送 950 kb/秒
我对 windows 和 Mac OS 没有任何明确的条件。
谁能帮我解决这个问题。
我的代码:
HttpPut putRequest = new HttpPut("http://my.localhost.com:8888");
FileEntity reqEntity = new FileEntity("c:/test/test.zip","text/plain");
putRequest.setEntity(reqEntity);
putRequest.addHeader("X-Auth-Token",strToken);
httpResponse = client.execute(putRequest);
mResponseCode = httpResponse.getStatusLine().getStatusCode();
最佳答案
Java 是 Write once, run anywhere (沃拉)。因此,Windows 机器上的 HTTP 连接比 Mac 机器慢的原因与 Java 无关。
可能有几个 Windows 机器故障会减慢上传速度。我建议您在 elevated 上按顺序运行以下命令命令提示符。
要禁用接收端缩放:
netsh interface tcp set global rss=disabled
要禁用 TCP/IP 自动调整:
netsh interface tcp set global autotuninglevel=disabled
禁用所有任务卸载:
netsh int ip set global taskoffload=disabled
可以找到有关上述命令的更多详细信息here .
如果问题仍然存在,那么你应该
- 重新安装网络驱动程序进行测试。
- 启动到带网络的安全模式以检查结果。如果正常,请查看Clean Boot中的结果检查哪个第三方工具对此有影响。
希希尔
关于java - 来自 Windows 操作系统的 Apache HttpPut 请求非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531257/