现在情况如下:
IDE:Eclipse j2ee
Android Project:NetClient
        src:com.android.client.NetworkClientActivitypackage com.android.client;import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class NetworkClientActivity extends Activity {
    /** Called when the activity is first created. */
private Button button1 = null;
private EditText editText1 = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button1 = (Button)findViewById(R.id.button1);
        editText1 = (EditText)findViewById(R.id.editText1);
        button1.setOnClickListener(new Button1Listener());
    }
    class Button1Listener implements OnClickListener{
@Override
public void onClick(View v) {
String urlString = "http://10.0.2.2:8888/HTTPServlet/com/android/server/LoginServlet";
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
if(conn.getResponseCode()==HttpURLConnection.HTTP_OK){
InputStream in = conn.getInputStream();
byte[] b = new byte[in.available()];
in.read(b);
String msg = new String(b);
editText1.setText(msg);
in.close();
}
conn.disconnect();
} catch (MalformedURLException e) {
editText1.setText(e.toString());
} catch(IOException e){
editText1.setText(e.toString());
}


}
    
    }
}

解决方案 »

  1.   

    Java Project:HTTPSevlet
                src:com.android.server.LoginServletimport java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,HttpServletResponse response){
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    PrintWriter out;
    try {
    out = response.getWriter();
    out.print("hello,android");
    out.flush();
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response){
    doGet(request,response);
    }
    }
      

  2.   

    但是现在访问不了,出现了response没有反应
      

  3.   

    打开了android程序,通过单击 getResponse 按钮,出现了response没有响应的问题
      

  4.   

    在NetworkClientActivity的时候,点下了Button就崩溃了
      

  5.   

    主线程函数5秒钟不反悔系统关你进程是肯定的,这个先另说。关键是哪句开始执行不下去了,这种时候如果不想加log,单步调试也没问题啊
      

  6.   

    假设本身网络就不通,也就是连不上服务端,那么客户端代码中的conn.getResponseCode()这句代码就会一直阻塞主线程(也没有设置一个超时时间),最终导致response没有反应应该把客户端联网的那些事儿放到另外的线程里面去做,而不是放到主线程里面做。