Я разрабатываю систему регистрации / входа для пользователей (подписчиков) в WordPress через приложение для Android.Таким образом, проблема заключается в том, что в процессе регистрации при отправке запроса объекта (запроса строки) приложение действительно отправляет данные (параметры и заголовок) правильно, но прослушиватель ответа не получает ответ от сервера,поэтому я не могу двигаться вперед.Я должен сказать, что POSTMAN правильно получает ответ (Object).
Может кто-нибудь сказать мне, что неисправности?Я пытался решить эту проблему в течение нескольких дней, но все еще безрезультатно.
Ниже я приведу свой код и ответ, который получает Почтальон.Заранее спасибо.:)
RegisterActivity.java (Комментарий String, который имеет ту же проблему, прокомментирован)
открытый класс RegisterActivity расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
final EditText etUsername = (EditText) findViewById(R.id.etUsername);
final EditText etEmail = (EditText) findViewById(R.id.etEmail);
final EditText etPassword = (EditText) findViewById(R.id.etPassword);
final Button bRegister = (Button) findViewById(R.id.bRegister);
final String url = "https://MYURL.com/wp-json/wp/v2/users/";
bRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username = etUsername.getText().toString();
final String email = etEmail.getText().toString();
final String password = etPassword.getText().toString();
final String authorization = "Bearer BLABLA Authorization key";
JSONObject params = new JSONObject();
try {
params.put("username", username);
} catch (JSONException e) {
e.printStackTrace();
}
try {
params.put("email", email);
} catch (JSONException e) {
e.printStackTrace();
}
try {
params.put("password", password);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, params, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
final String testtt = response.getString("username");
Toast.makeText(getApplicationContext(), testtt, Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error1212.", error.getMessage());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> header = new HashMap<>();
header.put("Authorization", authorization);
return header;
}
};
/*StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject testResponse = new JSONObject(response);
Toast.makeText(getApplicationContext(), testResponse.getString("username"), Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error1212.", error.getMessage());
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> header = new HashMap<>();
header.put("Authorization", authorization);
return header;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("username", username);
params.put("email", email);
params.put("password", password);
return params;
}
};*/
RequestQueue requestQueue = Volley.newRequestQueue(RegisterActivity.this);
requestQueue.add(request);
}
});
}
}
Почтальон Запрос и ответ я получаю Вот что происходит в моем Почтальоне
Как видите, Почтальон получает правильный ответОднако Android этого не делает, и выдает «Error1212», которое у меня есть выше (Response.ErrorListener ()).
Итак, я запрашиваю что-то неправильно?Я пытаюсь исправить это в течение нескольких дней, но решение не найдено.Еще раз спасибо.