生手求帮助~android与servlet通信连接不上
新手求帮助~android与servlet通信连接不上
我想让手机能与主机进行通信,servlet的代码是:
android端的代码是:
但是一直都是连接超时,在模拟机上也是连接超时,还请大家帮我看看是哪里有问题~
------解决方案--------------------
網絡通訊部分的代碼需要在子線程中運行
------解决方案--------------------
android4.0以后联网操作要放到子线程中
------解决方案--------------------
异步加载,android4.0以后是对android上网进行了相关要求
我想让手机能与主机进行通信,servlet的代码是:
package com.mk;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletTest extends HttpServlet {
public ServletTest() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request.getParameter("param"));
response.getOutputStream().print("OK");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void init() throws ServletException {
}
}
android端的代码是:
package com.example.androidjeetest;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView textView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.result);
/*
* 用Get方式向服务器发送数据
*/
String strUrl = "http://61.132.138.212:8080/AndroidJEEServlet/ServletTest?param=helloMK";
URL url = null;
try{
url = new URL(strUrl);
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
InputStreamReader in = new InputStreamReader(urlConn.getInputStream());
BufferedReader bufferedReader = new BufferedReader(in);
String result = "";
String readline = null;
while((readline = bufferedReader.readLine())!=null)
{
result += readline;
}
in.close();
urlConn.disconnect();
textView.setText(result);
}catch(Exception e){
textView.setText("连接超时");
}
}
@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;
}
}
但是一直都是连接超时,在模拟机上也是连接超时,还请大家帮我看看是哪里有问题~
------解决方案--------------------
網絡通訊部分的代碼需要在子線程中運行
------解决方案--------------------
android4.0以后联网操作要放到子线程中
------解决方案--------------------
异步加载,android4.0以后是对android上网进行了相关要求