簡體   English   中英

排球在模擬器上運行,但在設備上失敗

[英]Volley runs on Emulator but fails on device

我有一台LG G3,當我在其上運行我的應用程序時,Volley無法正常工作。 我正在做的就是向我的本地服務器發送一個發布請求,它可以在模擬器上正常運行,但是在設備上失敗。 我得到的錯誤是超時錯誤。 這是代碼:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button button = (Button) findViewById(R.id.button);
        final TextView textview = (TextView) findViewById((R.id.test));
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendRequest("example", "0", "0", "0", "0", "0", "0");

            }
        });
    }


    public void sendRequest(final String location, final String mood, final String gender, final String age,
                            final String day, final String month, final String year) {

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        String url = "http://10.0.2.2:8000/polls/add/";

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this, "works", Toast.LENGTH_SHORT).show();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this, "Error is: " + error.toString(),
                        Toast.LENGTH_LONG).show();
                Log.e("VOLLEY", error.toString());
            }
        }) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> parameters = new HashMap<>();
                parameters.put("age", age);
                parameters.put("location", location);
                parameters.put("mood", mood);
                parameters.put("gender", gender);
                parameters.put("day", day);
                parameters.put("month", month);
                parameters.put("year", year);
                return parameters;
            }

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("Content-Type", "application/x-www-form-urlencoded");
                return params;
            }
        };
        requestQueue.add(stringRequest);
    }
}  

任何幫助將非常感激。 謝謝!

如果要使用本地服務器,則應使用網絡內IP ....例如192.168.1.105而不是本地IP地址(10.0.2.2-127.0.0.1-等)

所以...只需使用ipconfig/all找到您的PC的IP地址,然后:

String url = "http://192.168.1.105:8000/polls/add/";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM