【发布时间】:2020-09-16 09:40:26
【问题描述】:
如何编写改造函数来接收以下 api 调用。我只调用了改造函数,我们直接在 params 中而不是在 body form-data 中传递参数,所以我不知道该怎么做。
虽然一点都不对,这是我试过的:
这是我的主要活动-
private void login(String username, String password) {
Call<User> call = student_signin.apiInterface.studentLogin("json",username, password);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.body().getError_code() == "401") {
Toast.makeText(student_signin.this, response.body().getError_message(), Toast.LENGTH_SHORT).show();
} else if (!response.body().getU_id().isEmpty()){
Toast.makeText(student_signin.this, "user signed in successfully", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(student_signin.this,t.getMessage(),Toast.LENGTH_LONG).show();
}
});
}
这是我的 API 接口类-
public interface APIinterface {
@FormUrlEncoded
@POST("login")
Call<User> studentLogin(@Query("format") String format, @Field("username") String username, @Field("password") String password);
}
这是我的 APIclient 类-
public class APIclient {
public static final String BASE_URL = "https://www.example.com/api/xyz/";
public static Retrofit retrofit = null;
public static Retrofit getApiClient()
{
if(retrofit==null)
{
// Gson gson = new GsonBuilder().setLenient().create();
retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();
}
return retrofit;
}
}
这是我的模型类-
public class User {
@Expose
@SerializedName("u_id")
private String u_id;
@Expose
@SerializedName("customer_id")
private String customer_id;
@Expose
@SerializedName("error_code")
private String error_code;
public String getU_id() {
return u_id;
}
public String getCustomer_id() {
return customer_id;
}
public String getError_code() {
return error_code;
}
}
我们将不胜感激和感谢任何帮助。
【问题讨论】:
-
给我们你所有的 json 对象
-
json 对象简单如下:
-
你想用 java 或 cotlin 编码吗?
-
java @SideegMoHammed
-
@SideegMoHammed [ { "u_id": "15", "customer_id": "","error_code:"" } ]
标签: java android retrofit2 form-data