当前位置: 首页 > 知识库问答 >
问题:

我如何处理来自改型的响应(这里我的响应没有显示数据,它只显示代码和调用的状态)

白文彬
2023-03-14

我正在使用改型从我的android应用程序做api调用。但是响应显示带有ok消息的状态代码200。但是调用的数据由HttpClient返回。那么我该如何处理我的呼叫的响应数据呢?这里的回应将是

请求有效载荷

/okHttp.okHttpClient:{“data”:{“email”:“foobar@gmail.com”,“password121”}}

回应:

OKHttp.OKHttpClient:{“数据”:“我的令牌”}

ApiService.java

 @POST(ApiConstant.Login)
 Call<User> LoginRequest(@Body JsonObject user);
ApiService userLoginService = retrofit.create(ApiService.class);
        final JsonObject jo = new JsonObject();

        jo.addProperty(ApiParameter.EMAIL, email);
        jo.addProperty(ApiParameter.PASSWORD, password);
        final JsonObject jobj = new JsonObject();
        jobj.add(ApiParameter.DATA, jo);
        userLoginService.userLogin(jobj).enqueue(new Callback<LoginRequest>(){
            @Override
            public void onResponse(Call<LoginRequest> call, Response<LoginRequest>response) {
                System.out.println(("response ===" + response));

LoginRequest.java

public class LoginRequest {

private String email;
private String password;

public void setEmail(String email) {
    this.email = email;
}

public void setPassword(String password) {
    this.password = password;
}

public String getEmail() {
    return email;
}

public String getPassword() {
    return password;
}

}

共有1个答案

田谦
2023-03-14

当您有一个json响应时,您可以分析或假定一个json等于一个类,因为Gson转换。

其中,json包含一个键data和一个字符串my tokken

在类翻新响应中,它是名为data的相等变量,它来自键data,类型为string,为什么是string?因为value my tokken是JSON中字符串。所以以后可以从datagetter setter中检索该值。比如getData();

因此,对于{“data”:“my tokken”}LoginResponse类只包含一个字段,即data,类型为string和setter getter。

当您有响应{“data”:{“user”:“xxxx”,“email”:“foobar@gmail.com”,“lastname”:“yyyyy”,“gender”:1,“devicetype”:1}“}时,您可以分析数据中包含一个json对象;一个json等于一个类。

因此,您需要一个类来获得对它值的可访问性。假设它用户类。

public class User {

     private String user; // because the value of user in json is String
     private String email;
     private String lastname;
     private Int gender; // because the value of gender in json is Int
     private Int deviceType;

     // the setter getter here

}

最后,处理改型调用的类响应。假设UserResponse应该如下所示

public class UserResponse {

     private User data; 
     // the variable is named data because it should be the same to the json key and the type of the variable is class `User`. Remember about the bolded text
     // (variable named same is not a must, if different, you can use `SerializedName` annotation, you can read about it later) 

     // the setter getter here

}

我用简单的方式解释了我的想法,我希望你能理解。

 类似资料:
  • 我正在jMeter中执行负载测试,其中有两个线程组,每个线程组都有50个用户,上升周期为60秒。使用Blazemeter,我记录了一个填写和提交表格的会话,然后稍微修改了一下。其中一组是使用POST方法登录,然后提交表单,另一组是匿名用户填写的。当我运行测试时,我遇到了错误: 响应代码:非HTTP响应代码:org.apache.HTTP。ConnectionClosedException响应消息:

  • 我有一个列表中保存的改造响应。我试图将适配器连接到回收器视图,以显示响应中的数据。我设法将适配器连接到回收器视图,但实际上我看不到任何显示在回收器视图中的数据。响应很好,我可以毫不费力地记录它。 适配器 主要活动 模型 Api响应

  • 第一件事:我想从API读取json数据,并想在我的Tymeleaf模板页面中显示。以下是我的代码: 我的JSON类: 我的控制器: 第二件事:实际上,我想检查这个数据随机基础,像1秒间隔调度和存储最后的记录到我的数据库。好的方法是什么? 我已经尝试使用Timer和TimerTask准备好API URL。但我失败了。

  • 最近我开始使用reverfit2,我遇到了一个解析空响应体的问题。我有一个服务器,它只响应http代码,没有任何内容在响应体。 我如何只处理关于服务器响应的元信息(报头、状态代码等)?

  • 问题内容: 我的网络服务返回一个JSON对象,如下所示 即,当我将此地址放入chrome浏览器中时,我可以到达上面。 我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获: 我总是在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。 我也试过 我又得到了空。 我已经看过Ajax要求的json响

  • 问题内容: 我正在尝试使用正则表达式搜索网页,但出现以下错误: TypeError:无法在类似字节的对象上使用字符串模式 我知道为什么urllib.request.urlopen()返回一个字节流,因此,至少在我看来,re不知道要使用的编码。在这种情况下我该怎么办?有没有办法在urlrequest中指定编码方法,或者我需要自己重新编码字符串?如果是这样,我想做什么,我假设我应该从标题信息中读取编码