2016-06-08 4 views
1

json으로 모델을 직렬화하기 위해 Jackson을 사용하고 있습니다. OAuth Java 라이브러리 인 Scribe를 사용하여 해당 모델로 URL을 요청하는 POST를하고 싶습니다.Scribe를 사용하여 json 또는 객체의 내용을 POST 할 수 있습니까?

현재 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

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(); 
관련 문제