Не удается запросить сервер для регистрации в facebook с помощью модификации okHttp

Теперь я использую модифицированный, OkHttp и facebook sdk для регистрации в facebook. Но у меня проблемы с моим методом регистрации «Fail:: java.lang.IllegalStateException: ожидается BEGIN_OBJECT, но был STRING в строке 1, столбец 1, путь $». Не могли бы вы посмотреть на что, пожалуйста? Вот мой код. Это событие facebook resignter.

 loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                GraphRequest request = GraphRequest.newMeRequest(
                        loginResult.getAccessToken(),
                        new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(
                                    JSONObject object,
                                    GraphResponse response) {

                                try {
                                    user_id = response.getJSONObject().get("id") + "";
                                    Log.i("User id", user_id);
                                    register(user_id);

                                    setProfile();
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }

                                try {
                                    response.getJSONObject().get("id");
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }

                            }
                        });
                Bundle parameters = new Bundle();
                parameters.putString("fields", "id,name,email,gender, birthday");
                request.setParameters(parameters);
                request.executeAsync();



            }


            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
    });

Это мой метод регистрации.

public void register(String id){
        String pic_link="https://graph.facebook.com/" + id + "/picture?type=large";
        Call<HashMap<String,String>> register= Login_api.createService(Login_service.class).register(id,pic_link);
        register.enqueue(new Callback<HashMap<String, String>>() {
            @Override
            public void onResponse(Response<HashMap<String, String>> response, Retrofit retrofit) {
                Log.i("SUCCESS:","MOTHER FUCKER");
            }

            @Override
            public void onFailure(Throwable t) {

                Log.i("Fail:",t.getMessage());
            }
        });
    }

Это мой класс API

public class Login_api {

    private static Retrofit.Builder builder = new Retrofit.Builder()
            .baseUrl("http://192.168.0.111")
            .addConverterFactory(GsonConverterFactory.create())
            .client(new MyOkHttp());

    public Login_api(){

    }

    public static <S> S createService(Class<S> serviceClass) {
        Retrofit retrofit = builder.build();
        return retrofit.create(serviceClass);
    }
}

А это мой сервисный интерфейс

public interface Login_service  {

    @FormUrlEncoded
    @POST("androidapi/public/post/store")
    Call<HashMap<String,String>> register(
            @Field("user_name") String user_name,
            @Field("profile_pic") String profile_pic

    );

}

person Min Htet Oo    schedule 31.01.2016    source источник


Ответы (1)


Трудно сказать наверняка без дополнительной трассировки стека, но я бы сказал, что вы не отвечаете действительным JSON на своем бэкэнде (http://192.168.0.111), поскольку сообщение об ошибке, которое вы получаете, возникает, когда Gson находит что-то отличное от { в качестве первого символа в ответе.

person jim    schedule 31.01.2016
comment
Спасибо! Я понял. Эта ошибка из-за моего внутреннего API :) - person Min Htet Oo; 31.01.2016