我制作了非常简单的后端程序(它只发送简单的请求)但是,它发生错误。
这是我的前端代码。
公共类MainActivity扩展了Activity {
String url = "http://localhost:8080/test.php";
RequestQueue mRequestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button send = (Button)findViewById(R.id.button1);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("login.java response", response.toString());
int l= response.length();
try {
if(l>1){
Toast.makeText(getApplicationContext(), response.getString("valid"), Toast.LENGTH_LONG).show();
}
else{
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("error", "Error: " + error.getMessage());
// hide the progress dialog
Toast.makeText(getApplicationContext(), "Server Error, try again", Toast.LENGTH_LONG).show();
}
});
// Adding request to request queue
mRequestQueue.add(jsonObjReq);
}
});
}
}
后端代码。
echo json_encode(&#34; return&#34;);
它的路径:&#34; c:\ wamp \ www \ test.php&#34;。 如果我运行此程序,它会显示&#34;服务器错误,再试一次&#34;。
我可以得到&#34;返回&#34;在网络浏览器上,所以我认为android程序中的url存在问题。 我关闭了Windows防火墙,但它也没有工作。
是否有人对此问题有丰富的经验并可以帮助我?
答案 0 :(得分:1)
您应该为Android应用提供运行服务器的计算机的实际IP地址。您可以通过键入控制台ipconfig
(对于Windows),对于UNIX系统ifconfig
来学习您的IP。
它很可能是192.168.1.xxx
或172.16.xxx.xxx
。
答案 1 :(得分:0)
您需要将网址更改为您的IP地址,而不是
"http://localhost:8080/test.php";
使用您的本地IP地址(例如):
"http://192.168.0.1:8080/test.php";