开发者社区> 问答> 正文

安卓获取网站数据出现问题

本人安卓刚刚入门,在获取网络数据的时候出现了问题,同样的代码,只是把 URL 改了,就出现的问题。下面是我的代码:

public class MainActivity extends Activity implements OnClickListener{
private static String address = new String();
public static final int SHOW_RESPONSE = 0;
private Button sendRequest;
private TextView responseText;
private String result = new String();

private Handler handler = new Handler(){
    public void handleMessage(Message msg){
        result = (String) msg.obj;
        showtext();
    }
};
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sendRequest = (Button) findViewById(R.id.send_request);
    responseText = (TextView) findViewById(R.id.response);
    //address = "http://www.baidu.com";//可正常访问
    //address = "http://apistore.baidu.com/microservice/weather?citypinyin=beijing;//可正常访问
    address = "http://www.pm25.in/api/querys/pm2_5.json?city=028&token=5j1znBVAsnSf5xQyNQyq";//不可正常访问
    sendRequest.setOnClickListener(this);
}
@Override
public void onClick(View v){
    if (v.getId() == R.id.send_request){
        //sendRequestWithHttpURLConnection();
        work();
    }
}
private void work(){
    HttpUtil.sendHttpRequest(address, new HttpCallbackListener() {

        @Override
        public void onFinish(String response) {
            // TODO Auto-generated method stub
            //Log.d("tag", response);
            Log.d("debug", response);
            Message message = new Message();
            message.obj = response;
            handler.sendMessage(message);
        }

        @Override
        public void onError(Exception e) {
            // TODO Auto-generated method stub
            Toast toast = Toast.makeText(MainActivity.this, "connection error!", 
                    Toast.LENGTH_SHORT);
            toast.show();
        }
    });
}

private void showtext(){
    show();
}
private void show(){
    responseText.setText(result);
}

当address = "http://www.pm25.in/api/querys/pm2_5.json?city=028&token=5j1znBVAsn...";的时候,下面logcat显示
screenshot
其他网址正常。这是为什么

展开
收起
蛮大人123 2016-02-27 16:09:38 2068 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    Handler不是主线程中的handler 所以需要自己创建looper对象!

    2019-07-17 18:49:01
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载