从android连接到servlet

时间:2015-11-07 13:08:02

标签: java android servlets

我想将我的android应用程序连接到servlet。我有这个错误:

org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.3:8081 refused
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:241)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:172)
 at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:130)

在AndroidManifest.xml中,我添加了两个权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

我可以从浏览器访问http://192.168.1.3:8081/Android/Login,它运行正常。但如果我从我真正的Android设备做同样的事情,我得到“连接时间”。 我已经停用了我的防火墙,但仍然存在同样的问题。

我的代码:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (android.os.Build.VERSION.SDK_INT > 9)
    {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    setContentView(R.layout.login);
    bLogin=(Button) findViewById(R.id.loginB);
    bLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            StringBuilder reponseHttp=new StringBuilder();
            HttpClient client=new DefaultHttpClient();
            String from="aaa",to="bbb";
            try {
                HttpGet httpGet =new HttpGet("http://192.168.1.3:8081/Android/Login?from="+from+"&to="+to);
                HttpResponse response=client.execute(httpGet); 
                //rest of code
            }catch (Exception e){
                e.printStackTrace();}
        }
    });
}

1 个答案:

答案 0 :(得分:0)

与服务器进程的连接需要一些时间。 Android现在要求我们使用Asynctask类并覆盖doInBackground()和onPostExecute()方法。 此外,HttpClient现已弃用,因此我们将使用UrlConnection。 希望这篇文章能够帮助未来的访客...