java使用jackrabbit去做webdav上传文件时出现Connection reset by peer: socket write error问题

发现使用域名去请求上传文件时,没有问题,后来想提升上传速度,缓存内网ip去请求上传后会出现 java.net.SocketException: Connection reset by peer: socket write error的问题,但是通过postman直接用ip请求也是没有问题的,所以对比查看一下jackrabbit和httpclient的源码,发现是ip地址请求时没有加上 content-length,具体再深层次的原因应该socket连接的问题,目前自己还没完全吃透,所以就不做详细解释了,免得
摘要由CSDN通过智能技术生成

发现使用域名去请求上传文件时,没有问题,后来想提升上传速度,就换成内网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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值