我正在尝试通过jboss
测试连接到Web Service
服务器的 Android应用。
当我使用127.0.0.1或我的内部IP(具有互联网访问)时,该程序工作正常。但每当我切换到没有互联网接入的网络(如adhoc)时,它就会抛出一个
java.net.ConnectException: Connection refused: connect error.
但我可以通过在浏览器中输入 IP地址:port 来访问服务器。
如果我正在ping服务器IP地址,则ping将成功。
我关掉了冷壁,但结果总是一样。
有关如何处理的任何想法?感谢
答案 0 :(得分:0)
它似乎不是ipaddresses的JBoss参数(默认情况下已关闭)。
但是如果您想使用Android设备来调用它,那么您需要使用互联网来使用该服务。或者需要确保Android设备获得本地IP ...然后通过192.xxx而不是127.0.0.1 ...
进行呼叫最好检查路由器/防火墙,以便将外部ip:端口移植到您的开发计算机......然后让Android(使用互联网)调用外部ipaddress ...
答案 1 :(得分:0)
这是将登录名和密码发送到服务器的提交代码
try {
json.put("utCode", ((EditText) findViewById(R.id.et_login)).getText());
json.put("utPassword", ((EditText) findViewById(R.id.et_pass)).getText());
new PostLogin().execute(Settings.getServerAddress(getBaseContext()) + "/auth/login", json);
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
private class PostLogin extends AsyncTask<Object, Integer, String> {
private ProgressDialog Dialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
Dialog.setMessage("Please wait..");
Dialog.show();
}
@Override
protected String doInBackground(Object... params) {
String url = (String) params[0];
JSONObject json = (JSONObject) params[1];
// Dummy code
InputStream is = null;
HttpResponse response = null;
try {
response = RestEasy.doPost(url, json);
if (response.getStatusLine().getStatusCode() == 500) {
return "500";
} else if (response.getStatusLine().getStatusCode() == 404) {
return "404";
}
HttpEntity entity = response.getEntity();
if (entity != null) {
is = entity.getContent();
String result = "";
result = RestEasy.convertStreamToString(is);
return result;
} else {
return "null";
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
当我使用具有互联网访问权限的网络时,代码运行没有问题,但如果我使用没有互联网访问权限的网络,它会抛出一个
java.net.ConnectException: Connection refused: connect error.