我正在Android上开发一个客户端服务器应用程序,我遇到了标题中的错误。我想要做的是使用Volley连接到我的桌面上通过IIS部署的C#服务器。
这是我遇到错误的代码(由于隐私原因,网址被编辑)。
private void validate(final String userName,final String userPassword)
{
final ProgressDialog pDialog = new ProgressDialog(this);
pDialog.setMessage("Loading...");
pDialog.show();
String tag_json_obj = "json_obj_req";
String url = "http://hostname//urlExample/urlExample/urlExample/urlExample";
StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response)
{
if (response.compareTo("true") == 0)
{
pDialog.hide();
Intent intent = new Intent(getBaseContext(), MainActivity.class);
startActivity(intent);
}
else
{
pDialog.hide();
AlertDialog alertDialog = new AlertDialog.Builder(LoginActivity.this).create();
alertDialog.setTitle("Can't login");
alertDialog.setMessage("Invalid username or password");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
Log.e("ERROR", "Error occurred ", error);
pDialog.hide();
}
})
{
@Override
protected Map<String,String> getParams()
{
Map<String, String> params = new HashMap<>();
params.put("username", userName);
params.put("password", userPassword);
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
return headers;
}
};
AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);
}
在URL字段中,它写有“hostname”,我的Windows桌面主机名取自ipconfig / all。如果我尝试访问它,URL可以在我的PC上运行,但它在我的手机上不起作用,甚至在浏览器中也不起作用。
我已在我的清单文件中添加了android.permission.INTERNET和android.permission.ACCESS_NETWORK_STATE。我没有激活VPN,我不使用自定义DNS或让我的手机生根,我检查了互联网是否工作,手机和PC都连接到同一个路由器,两者都使用相同的DNS。我不知道我还能做些什么。