2016-04-24 19 views
1

Ich möchte in einigen Service namens vid.me, https://api.vid.me/oauth/authorize mit POST.But, wenn ich versuche, Daten aus dem Protokoll zu bekommen, habe ich NullPointerException.I versucht, Toast und habe diesen Fehler zu.Ich bin versuche Antwortcode zu bekommen, um zu sehen, ob ich das richtig gemacht habe oder nicht.NPE Fehler bei der Verwendung von Retrofit

meine API-Klasse:

public interface VideoApi { 

    @GET("/videos/featured") 
    Call<Videos> getFeaturedVideo(); 

    @GET("/videos/new") 
    Call<Videos> getNewVideo(); 

    @FormUrlEncoded 
    @POST("oauth/authorize") 
    Call<SignInResults>insertUser(@Field("name") String name, 
          @Field("password") String password 
          ); 
} 

mein Fragment:

public class FeedFragment extends Fragment { 
    EditText username; 
    EditText password; 
    Button btnLogin; 
    public List<SignInResult> signInResult; 
    public static final String ROOT_URL = "https://api.vid.me/"; 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_feed, container, false); 
username = (EditText) rootView.findViewById(R.id.user_name_field); 
     password = (EditText) rootView.findViewById(R.id.password_field); 
     btnLogin = (Button)rootView.findViewById(R.id.button_login); 
     btnLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Authorize(); 
      } 
     }); 
     return rootView; 
    } 
    public void Authorize(){ 
     Retrofit retrofitAdapter = new Retrofit.Builder() 
       .addConverterFactory(GsonConverterFactory.create()) 
       .baseUrl(ROOT_URL) 
       .build(); 
     final VideoApi videoApi = retrofitAdapter.create(VideoApi.class); 
     Call<SignInResults> call = videoApi.insertUser(username.getText().toString(),password.getText().toString()); 
     call.enqueue(new Callback<SignInResults>() { 
      @Override 
      public void onResponse(Call<SignInResults> call, Response<SignInResults> response) { 
       Log.d("FeedFragment", "Status Code = " + response.body().signInResults.get(0).getCode()); 
      } 

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

      } 
     }); 

    } 
} 
+0

Post stacktrace – jakubbialkowski

+0

Dies wird Ihnen helfen. Ich habe die Frage auf http://stackoverflow.com/questions/36837967/trying-to-get-data-for-post-method-retrofit beantwortet –

Antwort

0
Call<SignInResponse> call = videoApi.insertUser(username_value, password_value); 
call.enqueue(new Callback<SignInResponse>() { 


    @Override 
    public void onResponse(Call<SignInResponse> call, Response<SignInResponse> response) { 
     SignInResponse results = response.body(); 
     Log.d("Response ==>> ", new GsonBuilder().setPrettyPrinting().create().toJson(results)); 
    } 

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

    } 
}); 



@Headers("Content-Type:application/x-www-form-urlencoded") 
@FormUrlEncoded 
@POST("/auth/create") 
Call<SignInResponse> insertUser(@Field("email") String username, 
          @Field("password") String password 
); 
Verwandte Themen