如何使用Scribe POST json或对象的内容?

时间:2016-06-08 17:24:34

标签: java oauth scribe

我正在使用Jackson将模型序列化为json,我想使用Scribe(一个OAuth java库)将该模型的POST请求发送到URL。

目前我正在使用util方法创建服务,创建该服务的请求,然后我签署请求然后发送它。在发送之前,我需要以某种方式将我的对象与请求一起附加。

final OAuth20Service service = util.getService();
final OAuthRequest request = new OAuthRequest(Verb.POST, url, service);
// request.addPayload(MAPPER.writeValueAsString(requestModel));
// request.addParameter(???);
service.signRequest(new OAuth2AccessToken(accessToken), request);
final Response postResponse = request.send();

问题是将字符串化的json作为有效负载发送不起作用,设置参数的唯一方法是传入两个字符串,但我的对象内部嵌套了数组和对象。由于postResponse.getBody()返回一个字符串(我假设在json中),它必须支持以另一种方式发送json,对吧?如何发送复杂参数(例如对象模型,json等)以及请求?

1 个答案:

答案 0 :(得分:1)

您必须添加application/json;charset=UTF-8内容类型。

final OAuth20Service service = util.getService();
final OAuthRequest request = new OAuthRequest(Verb.POST, url, service);
request.addHeader("Content-Type", "application/json;charset=UTF-8");
request.addPayload(MAPPER.writeValueAsString(requestModel));
// or this if you have a json string
// request.addPayload(json);
service.signRequest(new OAuth2AccessToken(accessToken), request);
final Response postResponse = request.send();