gpt4 book ai didi

java - Android-Java.io.Exception : content Length error Expected x amount of memeory got y amount

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:41 25 4
gpt4 key购买 nike

我一直在尝试查询NCBI blast website使用 Android 和 BioJava .我将 Eclipse 与 Android 模拟器一起使用。当我将代码作为 Android 应用程序运行时,出现以下错误:

W/System.err(533): java.io.IOException: 向 BLAST 服务器提交序列时发生错误。原因:content-length promise 2000 字节,但收到 214

当我采用完全相同的代码并将其作为常规 Java 应用程序运行时,它可以完美运行。有什么想法吗?

最佳答案

当我尝试在 Android 中发出 POST 请求时,我也想到了。 如果您在 header 中设置 Content-Length 并且实际内容具有不同的长度,它会在 Android 中抛出一个 IOException(在普通的 JDK 中它可以工作,尽管它是错误的)

您可以使用以下代码重现异常:

try {
URL oracle = new URL("http://oasth.gr/tools/lineTimes.php");
HttpURLConnection yc = (HttpURLConnection) oracle.openConnection();

yc.setRequestProperty("User-Agent",
"Mozilla/5.0 (X11; Linux i686; rv:2.0b12) Gecko/20110222 Firefox/4.0b12");
yc.setRequestProperty("Referer",
"http://oasth.gr/tools/lineTimes.php");
yc.setRequestProperty("Accept-Language",
"el-gr,el;q=0.8,en-us;q=0.5,en;q=0.3");
yc.setRequestProperty("Accept-Charset",
"ISO-8859-7,utf-8;q=0.7,*;q=0.7");

// content length should be 29 !!
yc.setRequestProperty("Content-Length", "1000");

// content length is 29 !
String parames = "bline=63&goes=a&lineStops=886";

yc.setDoOutput(true);

OutputStreamWriter wr = new OutputStreamWriter(yc.getOutputStream());

wr.write(parames);
wr.flush();
Log.d(TAG, "" + yc.getResponseCode());

BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;

StringBuilder sbu = new StringBuilder();

while ((inputLine = in.readLine()) != null)
sbu.append(inputLine);

wr.close();
in.close();

} catch (IOException e) {
e.printStackTrace();
Log.e("getLinesArrival Exception", e.getMessage());
}

所以如果你删除行

yc.setRequestProperty("Content-Length", "1000");

它会起作用的!

关于java - Android-Java.io.Exception : content Length error Expected x amount of memeory got y amount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417844/

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