2013-11-22 1 views
2

У меня возникла проблема с созданием почтовых запросов и отправкой json с помощью Robospice google http java client. Моя проблема в том, что сервер получает пустые данные запроса. (Ничего в postData)Отправить JSON в Post с robospice google http client

@Override 
    public AjaxResult loadDataFromNetwork() throws Exception { 

     JsonHttpContent jsonHttpContent = new JsonHttpContent(new JacksonFactory(), jsonObject); 

     //ByteArrayContent.fromString("application/json", jsonObject.toString()) 
     HttpRequest request = getHttpRequestFactory().buildPostRequest(
       new GenericUrl(baseUrl),    
       jsonHttpContent); 


     request.getHeaders().setContentType("application/json"); 

     request.setParser(new JacksonFactory().createJsonObjectParser()); 

     request.setContent(jsonHttpContent); 

     HttpResponse httpResponse = request.execute(); 

     AjaxResult result = httpResponse.parseAs(getResultType()); 

     return result; 
    } 

Заранее спасибо!

+0

robospice, клиент Google http java! –

ответ

0

Я сам охотился за подобным решением, и я нашел достойное объяснение того, как Google хочет отформатировать контент.

Я сделал класс POJO и только добавил некоторые геттеры и сеттеры и использовал это для данных, и это, казалось, сработало для меня.

google-http-java-client json update existing object

1

Вы можете сделать что-то вроде этого:

public class SignIn_Request extends GoogleHttpClientSpiceRequest<Login> { 
    private String apiUrl; 
    private JSONObject mJsonObject; 

    public SignIn_Request(JSONObject mJsonObject) { 
    super(Login.class); 
    this.apiUrl = AppConstants.GLOBAL_API_BASE_ADDRESS + AppConstants.API_SIGN_IN; 
    this.mJsonObject = mJsonObject; 
    } 

    @Override 
    public Login loadDataFromNetwork() throws IOException { 
    Ln.d("Call web service " + apiUrl); 
    HttpRequest request = getHttpRequestFactory()// 
     .buildPostRequest(new GenericUrl(apiUrl), ByteArrayContent.fromString("application/json", mJsonObject.toString())); 
    request.setParser(new JacksonFactory().createJsonObjectParser()); 
    return request.execute().parseAs(getResultType()); 
    } 

} 

Преобразование JSON в массив байтов и включить его в запросе после.

 Смежные вопросы

  • Нет связанных вопросов^_^