发现使用域名去请求上传文件时,没有问题,后来想提升上传速度,就换成内网ip去请求上传,但是请求后会出现 java.net.SocketException: Connection reset by peer: socket write error的问题,后面又通过postman直接用ip请求发现也是没有问题的,所以对比查看一下jackrabbit和httpclient的源码,发现是ip地址请求时没有对 content-length做处理,具体再深层次的原因应该socket连接的问题,目前自己还没完全吃透,所以就不做详细解释了,免得说错误导大家,如果有知道的朋友可以一起讨论一下。
实现代码如下:
// 上传文件
HttpPut put = new HttpPut(webDavConfig.getBaseUrl() + webDavConfig.getDav() + URLEncoder.encode(fullPath, "utf-8"));
InputStreamEntity requestEntity = new InputStreamEntity(new FileInputStream(file), file.length());
// 在这里设置 content-length 如果在后面通过 put.addHeader()或put.setHeader()的方式设置content-length,会再次报错提示content-length已存在
put.setEntity(requestEntity);
HttpResponse putResponse = client.execute(put, context);
int putStatus = putResponse.getStatusLine().getStatusCode();
if (putStatus == HttpStatus.CREA