Добавить параметр в тело с помощью библиотеки Scribe
Я занимаюсь разработкой приложения для Android и интегрировал библиотеку Scribe, чтобы установить http-соединение с OAuth1.0 с Magento. Моя проблема в том, что мне нужно отправить запрос с параметром в тело, но без ключа. Теперь я делаю логин правильно и у меня авторизован токен, я получаю продукты с сервера, категории, бла-бла... но я не могу оформить заказ, потому что всегда получаю код "401 Авторизация требуется". Я думаю, что проблема может быть по параметру в теле.
Мой код:
...
@Override
protected String doInBackground(String... json) {
String result = null;
org.scribe.model.Response response = null;
String url = Global.BASE_URL + "cart/1";
if(Global.TOKEN_AUTHORIZED != null) {
OAuthRequest request = new OAuthRequest(Verb.POST, url);
//I only need insert a json into body without key
request.addBodyParameter(<I don't need a key>, json[0]);
Global.OAUTH_SERVICE.signRequest(Global.TOKEN_AUTHORIZED, request);
response = request.send();
}
if(response != null && response.getCode() == 200) {
result = response.getBody();
} else {
result = "ERROR";
}
return result;
}
...
Как мне поставить только параметр в теле, но без ключа, значение?
Заранее спасибо:)
1 ответ
Решение
Я нашел решение:
- Сначала необходимо добавить заголовок, чтобы сказать, что содержимое запроса является json
- Чтобы добавить один параметр в тело без ключа, в значении существует метод addPayload(String)
Теперь я получаю ответ с кодом 200:)
if(Global.TOKEN_AUTHORIZED != null) {
OAuthRequest request = new OAuthRequest(Verb.POST, url);
request.addHeader("Content-Type", "application/json");
request.addPayload(params[0]);
Global.OAUTH_SERVICE.signRequest(Global.TOKEN_AUTHORIZED, request);
response = request.send();
}
Я надеюсь помочь кому-нибудь:)