如何使用改型2在android中发出POST请求

如何使用改型2在android中发出POST请求,android,retrofit2,Android,Retrofit2,我在android代码中使用了改型2。我已经开始使用相同的方法进行一些服务器调用,现在我被改装中使用的POSt请求卡住了 我想要的是发出POST请求,我想要发送的数据类似于[“1”、“2”、“3”、“4”] 我几乎尝试了所有的方法,但没有成功。有很多教程,但我已经为您提供了一个非常快速的示例,请原谅代码过于仓促,希望您能理解 您的rest界面: public interface MyRetrofit { @POST("/users") Call<MyResponse> postUse

我在android代码中使用了改型2。我已经开始使用相同的方法进行一些服务器调用,现在我被改装中使用的POSt请求卡住了

我想要的是发出POST请求,我想要发送的数据类似于[“1”、“2”、“3”、“4”]


我几乎尝试了所有的方法,但没有成功。

有很多教程,但我已经为您提供了一个非常快速的示例,请原谅代码过于仓促,希望您能理解

  • 您的rest界面:

    public interface MyRetrofit {
    @POST("/users")
    Call<MyResponse> postUser(@Body MyRequest body);}
    
  • 电话

    MyRequest req = new MyRequest();
    req.setName("Kermit");
    Call<MyResponse> task = apiInterface.postUser(req);
    task.enqueue(new Callback<MyResponse>() {
           @Override
           public void onResponse(Call<MyResponse> call, Response<MyResponse> response) {
               Log.d(TAG, "Success");
           }
    
           @Override
           public void onFailure(Call<MyResponse> call, Throwable throwable) {
               Log.e(TAG, "onFailure: ", throwable);
           }
    });
    
    MyRequest req=newmyrequest();
    请求设置名称(“Kermit”);
    调用任务=apinterface.positioner(请求);
    task.enqueue(新回调(){
    @凌驾
    公共void onResponse(调用、响应){
    日志d(标记为“成功”);
    }
    @凌驾
    失败时公共无效(调用、可丢弃){
    Log.e(标签“onFailure:”,可丢弃);
    }
    });
    
  • 这一切都应该是不言自明的。在第一步中创建定义所有REST调用的接口。然后,在第二步中,创建一个传入ok http客户机和gson转换器的改造实例。gson转换器将您的请求转换为json

    最后是电话。我创建了一个请求,这只是一个pojo,并通过改造api将其传递给。我们使用enqueue是因为我们在主线程上,我们希望通过改造在新线程上处理网络。当它完成改造时,我们会返回一个onResponse或onFailure

    希望能有帮助


    这个例子使用了一个很棒的REST接口测试工具。

    我几乎尝试了所有的方法。。。很难相信。。。如果这是真的,为什么你没有与我们分享你迄今为止尝试过的东西?好吧,那么你想让我在这里发布我迄今为止尝试过的所有代码。所以,我已经尝试在带有@Body注释的界面中直接传递列表。也可以通过在接口方法中传递RequestBody。感谢您的快速回复。但是我通过创建POJO尝试了这种类型,但是这不起作用。。
    MyRequest req = new MyRequest();
    req.setName("Kermit");
    Call<MyResponse> task = apiInterface.postUser(req);
    task.enqueue(new Callback<MyResponse>() {
           @Override
           public void onResponse(Call<MyResponse> call, Response<MyResponse> response) {
               Log.d(TAG, "Success");
           }
    
           @Override
           public void onFailure(Call<MyResponse> call, Throwable throwable) {
               Log.e(TAG, "onFailure: ", throwable);
           }
    });