预期对象,但在改造1.9中找到字符串

时间:2016-06-22 12:22:22

标签: android web-services http error-handling retrofit

大家好抱歉我的英文。 嗨,我是Retrofit库的新手,我在解析一些json时遇到问题。我已经在Stackoverflow上看了一些其他的解决方案,但我的问题没有太多运气。我试图让一个简单的Web服务工作。任何建议将不胜感激。我的json文件。{"user":"1","sup_id":"105","seller_vfd":"1","sup_lmd":"1"}

请求方法

String email=editEmail.getText().toString();
            String password=editPassword.getText().toString();

            progressGenerator.start(btnSignIn);

            Map<String, String> params = new HashMap<String, String>();
            params.put("user", "seller");
            params.put("sup_email", email);
            params.put("sup_pwd", password);
            params.put("sup_seller_token", "www001");


            RestAdapter adapter=new RestAdapter.Builder().setEndpoint(baseUrl).build();
            ApiCallRetrofit apiCall=adapter.create(ApiCallRetrofit.class);

           apiCall.signUp(params,new Callback<Seller>() {
               @Override
               public void success(Seller seller, Response response) {
                   System.out.println("inside success"+seller.user);
               }

               @Override
               public void failure(RetrofitError error) {

                   System.out.println("inside success"+error);

               }
           });

Seller.java

public class Seller {

public int user;
public String sup_id;
public String seller_vfd;
public String sup_lmd;

}

ApiCallRestrofit.java接口

public interface ApiCallRetrofit {


@GET("/signin.php?")
void signUp(@QueryMap Map<String, String> param, Callback<Seller> cb);


@GET("/forgot_password.php?")
void forgotPassword(@QueryMap Map<String, String> param, Callback<String> cb);

@GET("/forgot_token.php?")
void forgotToken(@QueryMap Map<String, String> param, Callback<String> cb);

}

我得到的错误是

retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $

我理解错误是说数据是一个对象,它应该从一个数组开始,但我不能解决它..谢谢

2 个答案:

答案 0 :(得分:0)

您是否可以在尝试解析之前发布Retrofit收到的未经修改的响应?您可能在JSON对象的开头包含了"

答案 1 :(得分:0)

我在我的代码中找到了解决方案,实际问题在这里@GET("/signin.php?") void signUp(@QueryMap Map<String, String> param, Callback<Seller> cb); 我正在给#34;?&#34;在signin.php之后,但在删除此标志后,它可以正常工作