2017-12-15 1 views
0
public ParseResponse getParseResponseObj(ParseRequest req){ 
    this.parseResponse = getParseResponse(req); 
    return this.parseResponse; 
} 

private ParseResponse getParseResponse(ParseRequest request){ 

    HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); 
    logging.setLevel(HttpLoggingInterceptor.Level.BODY); 

     final String BASE_URL = "https://api.infermedica.com/v2/"; 
     OkHttpClient.Builder httpClient = 
      new OkHttpClient.Builder(); 
     httpClient.addInterceptor(logging); 

     Retrofit.Builder builder = 
      new Retrofit.Builder().baseUrl(BASE_URL) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .client(httpClient.build()); 

     Retrofit retrofit = builder.client(httpClient.build()).build(); 
     InfermedicaClient infermedicaClient = retrofit.create(InfermedicaClient.class); 
    //final MutableLiveData<ParseResponse> resp = new MutableLiveData<>(); 
    //parseResponse = new ParseResponse(); 
    Call<ParseResponse> call = infermedicaClient.parseUserInput(Constants.APP_ID,Constants.APP_KEY,request); 

    call.enqueue(new Callback<ParseResponse>() { 
     @Override 
     public void onResponse(Call<ParseResponse> call, Response<ParseResponse> response) { 

      if (response.isSuccessful()) { 
       parseResponse = response.body(); 
      } 
      Log.v("ParseReq Success" , response.message()); 

     } 

     @Override 
     public void onFailure(Call<ParseResponse> call, Throwable t) { 

      Log.v("ParseReq Success" , t.getMessage()); 


     } 
    }); 


    return parseResponse; 
} 

성공적인 요청에서 구문 분석 응답 개체를 검색 한 다음 내 viewmodel 클래스에서 사용하는 방법은 무엇입니까? 또한이 요청은 한 번만 발생하므로 livedata를 사용하지 않았으며 응답 개체도 다음과 같이 사용합니다. viewmodel, 사용자가 그것을 표시하지 않습니다. 서버에서 응답 ok.the getParseResponseObj viewmodel 호출하는 경우에도 null 값을 받고 있어요 !.요청이 성공하면 "구문 분석 응답"개체를 검색 한 다음 개체를 내 viewmodel 클래스에서 사용하는 방법은 무엇입니까?

답변

0

내가 문제를 일했다, 내 응답 객체는 서버가 너무 반환 된 GSON 데이터를 올바르게 직렬화되지 않은 응답을 일치하지 않습니다.

관련 문제