我正在尝试从在手机(USB)上测试的 android 活动与笔记本电脑上 Apache Tomcat7 中的 Servlet 进行交互。我正在创建一个按钮。单击我应该转到下一个“活动”。但是,当我尝试在两者之间联系服务器时,它会停止响应并且不会转到下一页。如果需要此信息,我正在将 Ubuntu 作为我的笔记本电脑操作系统,将 OnePlus 作为我的手机。
以下是 Android 活动的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intent);
Button submit = (Button) findViewById(R.id.button1);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
new Login1().execute();
}
});
}
private class Login1 extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... paramss) {
DefaultHttpClient httpClient = new DefaultHttpClient();
String url = "http://192.168.1.100:8080/Server1/Server";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("u", "username"));
params.add(new BasicNameValuePair("p", "pass"));
HttpPost httpPost = new HttpPost(url);
Log.i("httpPost","success");
try {
httpPost.setEntity(new UrlEncodedFormEntity(params));
Log.i("setEntity", "success");
HttpResponse httpResponse = httpClient.execute(httpPost);
Log.i("execute", "success");
Intent login = new Intent(getApplicationContext(), act2.class);
startActivity(login);
} catch (ClientProtocolException e) {
e.printStackTrace();
Log.i("Exception","ClientProtocolException");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
Log.i("Exception", "UnsupportedEncodingException");
} catch (IOException e) {
e.printStackTrace();
Log.i("Exception", "IOException");
}
return null;
}
}
以下是我在 servlet 上的 doPost 方法。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name=request.getParameter("u").toString();
String password=request.getParameter("p").toString();
response.getWriter().write(name+password); //working
}
这就是我尝试过的:我在笔记本电脑上制作了一个本地 java 文件。试图联系apache tomcat7。它可以联系并得到想要的结果。但是我的 android 活动无法与服务器联系。它不会将控制权传递给 act2 活动。
我正处于学习阶段,所以我试图让事情尽可能简单。
附加信息:如果需要,我已连接到 wifi 互联网、家庭网络。
日志输出:
> 05-22 04:42:16.368 21511-23633/com.example.bhavya.sampleintent I/httpPost﹕ success
05-22 04:42:16.369 21511-23633/com.example.bhavya.sampleintent I/setEntity﹕ success
05-22 04:43:19.575 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.100:8080 refused
05-22 04:43:19.576 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
05-22 04:43:19.576 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-22 04:43:19.576 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-22 04:43:19.576 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
05-22 04:43:19.576 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at com.example.bhavya.sampleintent.IntentAct$Login1.doInBackground(IntentAct.java:117)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at com.example.bhavya.sampleintent.IntentAct$Login1.doInBackground(IntentAct.java:99)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ Caused by: java.net.ConnectException: failed to connect to /192.168.1.100 (port 8080): connect failed: ETIMEDOUT (Connection timed out)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at libcore.io.IoBridge.connect(IoBridge.java:124)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
05-22 04:43:19.577 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at java.net.Socket.connect(Socket.java:882)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ ... 14 more
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at libcore.io.Posix.connect(Native Method)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ at libcore.io.IoBridge.connect(IoBridge.java:122)
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent W/System.err﹕ ... 19 more
05-22 04:43:19.578 21511-23633/com.example.bhavya.sampleintent I/Exception﹕ IOException
我尝试使用本地移动热点网络,将其与互联网断开连接。但它不起作用。
注意:我不在模拟器上工作。我正在做 USB 调试。