ssbcxmg 2015-10-12 12:52 采纳率: 0%
浏览 1437

Android网络通信真机测试

刚入门学习Android的小白,正在学写Android网络通信,用的是HttpURLConnection,但在真机上测试程序总是崩溃,

MainActivity中的代码如下

package com.example.httpurl;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

public static final int SHOW_RESPONSE=0;
private Button sendRequest;
private TextView responseText;
private Handler handler =new Handler(){

    public void handleMessage(Message msg){
        switch(msg.what){
        case SHOW_RESPONSE:
            String response =(String) msg.obj;
            responseText.setText(response);
        }
    }
};

@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);
    sendRequest.setOnClickListener(this);

}
public void onClick(View v){
  if(v.getId()==R.id.send_request)
  {
      sendRequestWithHttpURLConnection();
  }

}

private void sendRequestWithHttpURLConnection() {
// TODO Auto-generated method stub
    new Thread(new Runnable(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            HttpURLConnection connection=null;
            try{
                URL url =new URL("http://www.baidu.com");
                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);
                }
                Message message = new Message();
                message.what =SHOW_RESPONSE;
                message.obj =response.toString();
                handler.sendMessage(message);


            }catch(Exception e){
                e.printStackTrace();
            }finally{
                if(connection !=null)
                {
                    connection.disconnect();
                }
            }
        }

    }).start();

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}
后面发现了是xml文件的问题,但是
点击按钮不会返回相应的数据,使用Logcat查看出现以下内容,没太能看懂,求解谢谢!图片说明

  • 写回答

3条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-10-12 12:58
    关注

    接上电脑,启动程序,看logcat的输出日志

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序