无法使用改造 okHttp 向服务器请求 facebook 注册

Can't request to server for facebook registration using retrofit okHttp

我现在正在使用改造,OkHttp 和 facebook sdk 来制作 facebook registration.But 我的注册方法有问题 "Fail:: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $"。你能看看吗?这是我的 code.This 是 facebook resigter 事件。

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

这是我的apiclass

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

    );

}

如果没有更多堆栈跟踪,很难确定,但我会说您没有在后端 (http://192.168.0.111) 上使用有效的 JSON 进行响应,因为错误消息是getting 是当 Gson 发现 { 以外的东西作为响应中的第一个字符时。