gpt4 book ai didi

java - 写入的字节过多 - HttpsURLConnection

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:01 28 4
gpt4 key购买 nike

我编写了一个应用程序来测试 servlet 的性能。我编写的代码可以很好地满足某些请求。如果我增加更多连接,有时我会收到“写入字节数过多”异常。

int startRange = 0, endRange = 10000;
HttpsURLConnection c = null;

c = getHttpsConnection(URL);
c.setDoInput(true);
c.setDoOutput(true);
c.setRequestProperty("Content-Length",(cotentLength+1));
c.setFixedLengthStreamingMode(contentLength+1);
c.setRequestProperty("Content-Type","appplication/zip");
c.setRequestMethod("POST");
c.setRequestProperty("Content-Range", "bytes "+startRange+"-"+endRange+"/"+filesize);

OutputStream op = c.getOutputStream();

我计算要发送到byte[] partBuf = new byte[contentLength+1];的固定 block ;

然后

op.write(partBuf)
String range = c.getHeaderField("Range");

in.close();
op.flush();
op.close();

在发送某些请求之前,我没有收到“太多字节写入错误”,发送的请求太多只会有时给我这个错误..我该如何处理这种情况?

通常为了测试,我会生成一些从 10、100、500、1000 不等的请求,这又会触发一个以 block 的形式接收数据的 servlet。

最佳答案

您的示例代码中有许多拼写错误,因此不清楚您的实际代码的作用。然而这看起来非常错误:

   c.setRequestProperty("Content-Range", startRange-endRange/filesize);

该 header 的内容应该是一个字符串,但您似乎正在发送一个整数值。下面是 HTTP 1.1 规范中的 header 应该的示例。

   HTTP/1.1 206 Partial content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif
<小时/>

您编辑的版本仍然不正确。应该是这样的:

c.setRequestProperty("Content-Range", 
"bytes " + startRange + "-" + endRange + "/" + filesize);

...假设这些变量具有适当的值。

<小时/>

现在您已经修复了这些错误,我的下一个怀疑点是值本身......以及 contentLength 值。

如果这不是答案,请考虑服务器或 servlet 不支持 POST 的“Content-Range”的可能性。

关于java - 写入的字节过多 - HttpsURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138369/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com