使用 Scribe 库将参数添加到正文中
Add parameter into body with Scribe Library
我正在开发一个 Android 应用程序,并且我已经集成了 Scribe 库以通过 Magento 与 OAuth1.0 建立 http 连接。我的问题是我需要将带有参数的请求发送到正文但没有密钥。现在我正确登录并获得了令牌授权,我从服务器、类别、等等等等获得产品,但我无法结帐,因为我总是收到代码“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;
}
...
如何在正文中只放一个参数而不放键、值?
提前致谢:)
我找到了解决方案:
- 首先需要添加一个Header表示请求的内容是一个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();
}
我希望能帮助到别人:)
我正在开发一个 Android 应用程序,并且我已经集成了 Scribe 库以通过 Magento 与 OAuth1.0 建立 http 连接。我的问题是我需要将带有参数的请求发送到正文但没有密钥。现在我正确登录并获得了令牌授权,我从服务器、类别、等等等等获得产品,但我无法结帐,因为我总是收到代码“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;
}
...
如何在正文中只放一个参数而不放键、值?
提前致谢:)
我找到了解决方案:
- 首先需要添加一个Header表示请求的内容是一个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();
}
我希望能帮助到别人:)