gpt4 book ai didi

android - POST 请求改造 2.0

转载 作者:行者123 更新时间:2023-11-29 20:00:29 25 4
gpt4 key购买 nike

我一直在尝试使用 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;

}

还有我的部分 Activity 代码:

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 $

我试图在没有特殊类的情况下发出请求,仅使用一个 String 参数,但它也不起作用。感谢您的所有回复。

最佳答案

您向服务器发送请求的方式是正确的。您确定服务器返回具有简单值的 JSON 对象吗?看起来它返回 JSON 数组,因此您会收到此错误 Expected BEGIN_OBJECT but was BEGIN_ARRAY。如果服务器返回 JSON 数组,您将需要相应地更改您的 RespBody 类。

关于android - POST 请求改造 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com