Я создаю приложение в студии 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
}
}