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

在OnResponse或OnFailure中具有改型从不触发器的Post方法

芮琛
2023-03-14

我正在尝试做一个带有改型的帖子,以检查服务器中是否存在一些数据。我的问题是nver经历了响应或失败。代码从不在这两个方法中传递。我在日志中没有发现任何错误。如果我进行调试,代码将停止在这里:call.enqueue(new Callback())并在下一步转到方法之外。

如有帮助,将不胜感激

代码:

 ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);

        Call<User> call = apiService.smsPincodeCheck(getPhoneNuber, email);
        call.enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {
                if(response.isSuccess()){
                    Toast.makeText(RegisterThreeActivity.this, "200", Toast.LENGTH_SHORT).show();
                }

                if(response.code() == 401){
                    Toast.makeText(RegisterThreeActivity.this, "401", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {

            }
        });

接口:

 @FormUrlEncoded
    @POST("api/check")
    Call<User> smsPincodeCheck(@Field("email") String email,  @Field("phoneNumber") String phoneNumber);
public class User implements Serializable {
    private final static String TAG = "User";

    @SerializedName("user")
    @Expose
    private Long id;
    private Long commerceId;
    private String email;
    private String name;
    private String lastname;
    private String dni;
    private String companyCharge;
.
.
. Getters and setters
{
  "phoneNumber" : "444444444", 
  "email" : "example@example.com"
}
Call<ResponseSMS> call = apiService.smsPincodeCheck(getPhoneNuber, email);
    call.enqueue(new Callback<ResponseSMS>() {
        @Override
        public void onResponse(Call<ResponseSMS> call, Response<ResponseSMS> response) {
            if(response.isSuccess()){
                Toast.makeText(RegisterThreeActivity.this, "200", Toast.LENGTH_SHORT).show();
            }

            if(response.code() == 401){
                Toast.makeText(RegisterThreeActivity.this, "401", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onFailure(Call<ResponseSMS> call, Throwable t) {
            Toast.makeText(RegisterThreeActivity.this, "Failure", Toast.LENGTH_SHORT).show();
        }
    });
}

接口:

Call<ResponseSMS> smsPincodeCheck(@Field("email") String email, @Field("phoneNumber") String phoneNumber);

型号:

public class ResponseSMS {
    public String response;
    public int status;

    public String getResponse() {
        return response;
    }

    public void setResponse(String response) {
        this.response = response;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }
}

共有1个答案

陶博耘
2023-03-14

现在您需要创建一个单独的模型类来处理web服务的响应:

公共类响应{public String Response;public int status;}

并将该类替换为改型web服务调用中的user

在:1中用响应替换用户。您的APIInterface接口的smspincodecheck方法。2.调用 调用=apiservice.smspincodecheck(getPhoneNuber,email); 3。

call.enqueue(new Callback<Response>() {
            @Override
            public void onResponse(Call<Response> call, Response<Response> response) {
                if(response.isSuccess()){
                    Toast.makeText(RegisterThreeActivity.this, "200", Toast.LENGTH_SHORT).show();
                }

                if(response.code() == 401){
                    Toast.makeText(RegisterThreeActivity.this, "401", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<Response> call, Throwable t) {

            }
        });
 类似资料:
  • 本文向大家介绍什么是触发器?SQL Server 2000有什么不同类型的触发器?相关面试题,主要包含被问及什么是触发器?SQL Server 2000有什么不同类型的触发器?时的应答技巧和注意事项,需要的朋友参考一下 让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Serv

  • 我正试图让在我的回调中执行。出于某种原因,onFailure会不断被调用,即使服务器返回200个代码,我也会获取全部数据。 我不确定必须做什么才能正确执行,以便解析JSON并将对象添加到列表视图中。 相关片段:- 请求接口:- 公共接口请求接口{ 服务器响应类: php代码:- functions.php: 数据库操作: 这是我在服务器上的回复: 这是堆栈跟踪和异常: [Ljava.lang.St

  • 我想创建ddl触发器(在创建),这将创建一个dml触发器,但我有错误: ORA-06512:8 00604. 00000-"错误发生在递归SQL级别%s"*原因:错误发生在处理递归SQL语句(适用于内部字典表的语句)。*操作:如果可以纠正堆栈上下一个错误中描述的情况,请这样做;否则请联系Oracle支持。

  • 我使用的是气流 1.7.1.3。 我有一个并发DAG/任务的问题。当DAG运行时,调度程序不再启动其他DAG。似乎调度程序完全冻结(不再有日志)……直到运行的DAG完成。然后,新的DAGrun被触发。我的不同任务是长时间运行的ECS任务(约10分钟) 我使用了,并允许默认配置dag_concurrency=16。我使用并自动重新启动它,并为我的所有DAG声明设置 而我只有2个CPU可用。 有什么想

  • 我知道这是非常不受赞扬的, 我知道这是一个性能、速度等方面的问题,但这是一个集成问题,他们只通过mysql进行更新(我知道这样做也很疯狂,但我无法改变他们所做的,他们正在进行大量的销售,所以他们不想改变任何事情)。 我只需要发布到一个URL(它可以像http://www.google.com?id=skuid) 我读了这个博客和堆栈,但他们是2岁,想知道是否有替代使用udf: http://ope

  • 我正在开发一个需要从服务器下载数据的移动应用程序。它工作得很好,但在对服务器进行了一些更改后,来自改装的GET请求停止工作。它成功地发出请求,有时甚至得到成功的响应,但它从不调用onResponse()或onFailure()方法,因此应用程序只能挂起。 基本上有两种情况: 请求正确完成。Okhttp收到响应并打印内容,但它以一条消息结束(“阅读:意外的EOF!”)。之后应用程序停止工作。它不会冻