2016-08-29 5 views
0

Das ist mein Retrofit KlasseNullPointerException bei der Konvertierung von Retrofit-Antwort auf String?

public class ApiClient { 
public static final String BASE_URL = AppConstants.BASE_URL; 
private static Retrofit retrofit = null; 


public static Retrofit getClient() { 
    if (retrofit == null) { 
     retrofit = new Retrofit.Builder() 
       .baseUrl(BASE_URL) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
    } 
    return retrofit; 
} 

public interface RegisterAPI { 
    @POST(AppConstants.LOGIN_PAGE) 
    Call<JSONObject> getLogin(@Body JSONObject loginParams); 
} 
} 

Diese Nachrüst Anfrage ist

JSONObject loginParams = ((MainActivity) getActivity()).requestParams.getLoginParams(etUserName.getText().toString(), etPassword.getText().toString()); 
      ApiClient.RegisterAPI apiService = 
        ApiClient.getClient().create(ApiClient.RegisterAPI.class); 


      Call<JSONObject> call = apiService.getLogin(loginParams); 
      call.enqueue(new Callback<JSONObject>() { 
       @Override 
       public void onResponse(Call<JSONObject> call, Response<JSONObject> response) { 
        Log.e("response", response.body().toString()); 
       } 

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

       } 
      }); 

Während die Antwort auf Zeichenfolge Umwandlung I Null-Zeiger

java.lang.NullPointerException 
at com.vfirst.ifbagro.login.LoginFragment$1.onResponse(LoginFragment.java:96) 
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 
at android.os.Handler.handleCallback(Handler.java:730) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
at dalvik.system.NativeStart.main(Native Method) 
+0

In 'Rufen ' Sie haben Antwort Serialize verwenden Modellklasse anstelle von 'JSONObject' –

Antwort

1

Try Protokollierung nur response.body() zum ersten bekommen zu sehen wenn es nicht null ist.

Wenn Sie OkHttpClient verwenden Sie Abfangjäger und melden Sie sich die Antwort hinzufügen können, wird dies garantiert arbeiten:

public Response intercept(Chain chain) throws IOException { 
    Request.Builder builder = chain.request().newBuilder(); 
    // Add custom headers etc with builder 
    .... 
    Request request = builder.build(); 
    Response response = chain.proceed(request); 
    String body = response.body().string() 
    .... 
+0

Es gibt keine string() -Methode – WISHY

0

dieses Versuchen

BufferedReader reader = null; 
String output = ""; 

    try { 
     reader = new BufferedReader(new InputStreamReader(response.getBody().in())); 
     output = reader.readLine(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
    Toast.makeText(getActivity(), output, Toast.LENGTH_LONG).show(); 
Verwandte Themen