Почему мой запрос API выдает ошибку 404? - PullRequest
0 голосов
/ 14 июля 2020

Я создаю приложение в студии android, которое требует от меня отправки запросов POST и получения ответов от API-интерфейсов на основе инфраструктуры Odoo.

My LoginActivity отправляет запрос POST с помощью метода JSONObjectRequest и возвращает требуемый ответ, который переносит нас в MainActivity, где мне нужно отправить еще один запрос в другой API, чтобы получить требуемый ответ. Но когда я отправляю этот второй запрос, я получаю следующее сообщение об ошибке:

2020-07-14 21:22:57.037 1134-1194/com.example.firstdraft E/Volley: [2792] BasicNetwork.performRequest: Unexpected response code 404 for http://XXX.XXXXXX.XXX/XXX/XXX/

Кто-нибудь еще сталкивался с подобной ошибкой или знает, что нужно сделать для ее решения?

Мой код LoginActivity выглядит следующим образом:

public class LoginActivity extends AppCompatActivity {

    EditText username,password;
    Button login;
    RequestQueue requestQueue;

    String user, pass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        requestQueue = Volley.newRequestQueue(LoginActivity.this);

        username = (EditText) findViewById(R.id.username);
        password = (EditText) findViewById(R.id.password);
        login = (Button) findViewById((R.id.login));


        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                user = username.getText().toString();
                pass = password.getText().toString();
                postData(requestQueue);
            }
        });
    }
    public void openDashboard() {
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
    }
    public void postData(RequestQueue requestQueue){
        JSONObject object = new JSONObject();
        try {
            // Creation of JSON Object to be sent 
        }
        catch (JSONException e) {
            e.printStackTrace();
        }

        String url = getResources().getString(R.string.loginurl);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, object,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        JSONArray key = response.names();
                        String k = null;
                        try {
                            k = key.getString(2);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        if () { // condition satisfied
                            /*System.out.println(response);*/
                            Toast.makeText(getApplicationContext(), "Logging In", Toast.LENGTH_SHORT).show();
                            openDashboard();
                        }
                        else{
                            Toast.makeText(getApplicationContext(), "Wrong Credentials", Toast.LENGTH_SHORT).show();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        System.out.println(error);
                        Toast.makeText(getApplicationContext(), "Wrong Credentials", Toast.LENGTH_SHORT).show();
                    }
            }) {
            @Override
            public Map<String,String> getHeaders() {
                HashMap<String,String> headers = new HashMap<String,String>();
                headers.put("Content-Type", "application/json");
                return headers;
            }
            @Override
            public String getBodyContentType() {
                return "application/json";
            }
        };
        requestQueue.add(jsonObjectRequest);
    }
}



Мой код MainActivity выглядит следующим образом:

public class MainActivity extends AppCompatActivity {
    RequestQueue requestQueue;

    private Spinner dropdown;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        requestQueue = Volley.newRequestQueue(MainActivity.this);

        postData(requestQueue);
    }

    public void postData(RequestQueue requestQueue) {
        JSONObject object = null;
        try {
            object = jsonCreate();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        String url = getResources().getString(R.string.url2);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, object,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            // Whatever needs to be done with the response
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        System.out.println(error);
                    }
                }) {
            @Override
            public Map<String, String> getHeaders() {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json");
                return headers;
            }
            @Override
            public String getBodyContentType() {
                return "application/json";
            }
        };
        requestQueue.add(jsonObjectRequest);
    }

    
    public JSONObject jsonCreate() throws JSONException {
        // Creation of JSON Object
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...