2016-04-24 5 views
1

vid.meと呼ばれるサービスでログインする場合は、https://api.vid.me/oauth/authorizeをPOSTとします。ログからデータを取得しようとすると、NullPointerException.Iがトーストを作成しようとしましたが、このエラーもあります。私はこれを正しくやったかどうかを確認するための応答コードを取得しようとしています。Retrofitを使用したNPEエラー

私のAPIクラス:

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 
          ); 
} 

私のフラグメント:

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

ポストあなたのスタックトレース – jakubbialkowski

+0

これがお手伝いします。私はhttp://stackoverflow.com/questions/36837967/trying-to-get-data-for-post-method-retrofitの質問に答えました –

答えて

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 
); 
関連する問題