1

我正在尝试通过 HttpURL 连接创建 FlickR 请求,并且在 con.getInputStream() 上得到 java.net.protocolException

        Thread thread = new Thread(new Runnable(){
            @Override
            public void run() {
                try {
                    URL turl = new URL(url);                        
                    HttpsURLConnection con = (HttpsURLConnection)turl.openConnection();                     
                    InputStream inputStream = con.getInputStream();
                    xml = getStringFromInputStream(inputStream);
                    uihandler.post(obj.updateRunnable);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

网址是

静态最终字符串 URL = " https://api.flickr.com/services/rest/?method=flickr.interestingness.getList&api_key=XXXXXXXXXX ";

异常日志

07-07 23:47:36.980: W/System.err(1923): java.net.ProtocolException: Unexpected status line: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: Cache Access Denied</title> <style type="text/css"><!--   /* Page basics */
07-07 23:47:37.020: D/dalvikvm(1923): GC_FOR_ALLOC freed 204K, 9% free 3077K/3356K, paused 32ms, total 35ms
07-07 23:47:37.020: W/System.err(1923):     at  com.android.okhttp.internal.http.RawHeaders.setStatusLine(RawHeaders.java:108)
07-07 23:47:37.020: W/System.err(1923):     at com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:308)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.Connection.makeTunnel(Connection.java:311)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.Connection.upgradeToTls(Connection.java:127)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.Connection.connect(Connection.java:107)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
07-07 23:47:37.030: W/System.err(1923):     at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161)
07-07 23:47:37.030: W/System.err(1923):     at com.example.flickr.XMLParser$2.run(XMLParser.java:99)
07-07 23:47:37.030: W/System.err(1923):     at java.lang.Thread.run(Thread.java:841)

任何帮助,将不胜感激。

4

2 回答 2

1
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: Cache Access Denied</title> <style type="text/css"><!--   /* Page basics */

你得到的是 html 而不是 xml,这是你得到异常的原因。
检查您的网址。

于 2014-07-08T04:31:33.113 回答
0

服务器未能返回正确格式的 HTTP 响应。相反,它只是返回直接的 HTML,没有 HTTP 标头。在客户端,您无能为力。向服务员投诉。如果是你,请修复它。

顺便说一句,与 HTTPS 或 SSL 无关,它运行良好,

于 2014-07-08T04:33:14.027 回答