java– 使用HttpURLConnection标头时的Android EOFException

java– 使用HttpURLConnection标头时的Android EOFException,第1张

概述我使用自定义授权标头签署我的http请求:Stringkey="client="+USER+",hash="+sha1(STR,API_KEY)+",timestamp="+t.toString();如果有人对sha1方法感兴趣:http://pastebin.com/HRFXQ4Bk密钥字符串用作标题:URLurl=newURL(sb.toString());HttpURLConnectionconn=null

我使用自定义授权标头签署我的http请求:

String key="clIEnt="+USER+",hash="+sha1(STR, API_KEY)+",timestamp="+t.toString();

如果有人对sha1方法感兴趣:http://pastebin.com/HRFXQ4Bk密钥字符串用作标题:

URL url = new URL(sb.toString());httpURLConnection conn = null;  conn = (httpURLConnection) url.openConnection();conn.setRequestProperty("Authorization", key);conn.setRequestMethod("GET");inputStreamReader in = new inputStreamReader(conn.getinputStream());

当我尝试获得响应时,我得到以下错误:

10-28 18:25:40.111: E/error(6855): java.io.EOFException 10-28
18:25:40.111: E/error(6855): at
libcore.io.Streams.readAsciiline(Streams.java:203) 10-28 18:25:40.111:
E/error(6855): at
libcore.net.http.httpEngine.readResponseheaders(httpEngine.java:579)
10-28 18:25:40.111: E/error(6855): at
libcore.net.http.httpEngine.readResponse(httpEngine.java:827) 10-28
18:25:40.111: E/error(6855): at
libcore.net.http.httpURLConnectionImpl.getResponse(httpURLConnectionImpl.java:283)
10-28 18:25:40.111: E/error(6855): at
libcore.net.http.httpURLConnectionImpl.getinputStream(httpURLConnectionImpl.java:177)

在我的服务器上,此请求未记录任何访问权限.但是,当我删除auth标头时,根据服务器日志建立与我的服务器的连接.

那么auth头如何影响请求呢?使用标题时为什么没有连接?

BTW像一个标题

conn.setRequestProperty("Authorization", "FOObar");

然而,由于授权标头与要求不匹配,因此被拒绝:

10-29 08:12:07.235: E/error(23663): java.net.ConnectException: Failed
to connect to API.myserver.net (port 1337):
connect Failed: ECONNREFUSED (Connection refused) 10-29 08:12:07.235:
E/error(23663): at libcore.io.IoBrIDge.connect(IoBrIDge.java:114)
10-29 08:12:07.235: E/error(23663): at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 10-29
08:12:07.235: E/error(23663): at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)

我的webservice要求标题具有以下格式

match(/clIEnt=([^,]*),hash=([^,]*),timestamp=([^,]*)/);

所以这个例外与最初的例外不同.当我删除标题并禁用我的webservice上的授权时,连接按预期工作.所以问题似乎与自定义授权标头有关.有任何想法吗?

解决方法:

根据此question,某些AndroID版本可能会出现问题.

尝试将conn.setRequestProperty(“Connection”,“close”)添加到您的请求中.

总结

以上是内存溢出为你收集整理的java – 使用HttpURLConnection标头时的Android EOFException全部内容,希望文章能够帮你解决java – 使用HttpURLConnection标头时的Android EOFException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1115594.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存