安卓从网站读数据时遇到偶发异常java.io.EOFException

代码如下
package com.example.aaa;

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
caonima("http://www.weather.com.cn/data/cityinfo/101010100.html");
}

public void caonima(final String address){
    new Thread(new Runnable(){
        @Override
        public void run() {
            HttpURLConnection connection=null;
            try {
                URL url=new URL(address);
                connection=(HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(8000);
                connection.setReadTimeout(8000);
                InputStream in=connection.getInputStream();
                BufferedReader reader=new BufferedReader(new InputStreamReader(in));
                StringBuilder response=new StringBuilder();
                String line;
                while((line=reader.readLine())!=null){
                    response.append(line);
                }                                           
                System.out.println(response.toString());

            } catch (Exception e) {
                System.out.println( e.toString());

            }finally{
                if(connection!=null){
                    connection.disconnect();
                }
            }

}

    }).start();
}

}
同类型有些address会进这个异常,但有些不会进,
(这些address在浏览器输入网站返回的json数据都是正常的)

4个回答

这个我看过了,还是不能解决,有些特定地址正常运行,而有些却不可以让我无法理解

你改成https试下,现在很多都重定向为http为https了

或者使用网络框架,比如okhttp,它底层自动实现重定向了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐