我遇到問題。我開始用servlet和Android開始我的冒險,並且我設計了一個寫入「Hello world」的簡單servlet。現在我想在我的Android應用中收到此消息。我的代碼:Android應用停止工作 - servlets和Httpget
public class MyServlet extends Activity implements OnClickListener{
Button button;
TextView outputText;
public static final String URL = "http://10.0.2.2:8080/ServletExample/HelloServletExample";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewsById();
button.setOnClickListener(this);
}
private void findViewsById() {
button = (Button) findViewById(R.id.button);
outputText = (TextView) findViewById(R.id.outputTxt);
}
public void onClick(View view) {
String output = null;
HttpClient httpclient = new DefaultHttpClient();
try {
HttpResponse response = httpclient.execute(new HttpGet(URL));
HttpEntity httpEntity = response.getEntity();
output = EntityUtils.toString(httpEntity);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
//} catch (IOException e) {
// TODO Auto-generated catch block
//}
outputText.setText(output);
}
我的servlet:
@WebServlet("/HelloServletExample")
public class HelloServletExample extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServletExample() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
我不知道爲什麼,但我的應用程序崩潰。我嘗試了一些註釋,結果發現問題是這條線:
HttpEntity httpEntity = response.getEntity();
爲什麼?
如果你對此有何評論'HttpEntity httpEntity = response.getEntity();'線然後它的工作?如果是,那麼在應用程序崩潰後在logcat中搜索「NetworkOnMainThreadException」 –
我確實有這個例外。爲什麼?我的應用是Android 4,我在互聯網上閱讀,我這樣做的方式是檢索數據的正確方法。 – user1928115
噢,我必須使用AsyncTask? – user1928115