【发布时间】:2016-03-31 22:13:51
【问题描述】:
我一直在尝试使用 Retrofit 2.0 发出 POST 请求,但我遇到了一些问题。我很乐意提供任何帮助。 我有这个界面:
public interface HZApi {
@POST("URL")
Call<RespBody> register(@Body ReqBody request);
}
这是我的请求和响应类:
public class ReqBody {
@SerializedName("login")
String login;
@SerializedName("password")
String password;
public ReqBody(String login, String password){
this.login = login;
this.password = password;
}
}
public class RespBody {
@SerializedName("login")
String login;
@SerializedName("password")
String password;
@SerializedName("isreg")
int isreg;
}
还有我的部分活动代码:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://URL/")
.addConverterFactory(GsonConverterFactory.create())
.build();
HZApi api = retrofit.create(HZApi.class);
ReqBody req = new ReqBody(login,password);
Call<RespBody> call = api.register(req);
call.enqueue(new Callback<RespBody>() {
@Override
public void onResponse(Call<RespBody> call, Response<RespBody> response) {
Toast.makeText(getApplicationContext(),"OK",Toast.LENGTH_SHORT).show();
//answer.setText(response.body().toString());
}
@Override
public void onFailure(Call<RespBody> call, Throwable t) {
Toast.makeText(getApplicationContext(),t.getMessage(),Toast.LENGTH_SHORT).show();
Log.d("MyTag",call.toString(),t);
}
});
当我尝试发出请求时,JSON 会抛出: 预期为 BEGIN_OBJECT,但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY
我试图在没有特殊类的情况下发出请求,只使用一个字符串参数,但它也不起作用。感谢您的所有回复。
【问题讨论】:
标签: android json post retrofit2