2016-11-17 76 views
-4

我使用改装2我的Android代码,使在android系统POST请求。我已经开始使用相同的服务器调用,现在我卡在改进中使用的POSt请求上。如何利用改造2

我要的是做一个POST请求,我要发送的数据是一样的东西[“1”,“2”,“3”,“4”]

我几乎尝试了所有的方式但没有运气。

+2

*我几乎尝试了所有的办法* ...它是很难相信的......如果你为什么不跟我们出了什么你试过到目前为止分享会是真的吗? – Selvin

+0

好,所以你希望我在这里发布所有的代码,到目前为止我已经尝试过。因此,对于您的信息,我曾尝试直接与@Body注释接口通过列表。还通过在接口的方法中传递RequestBody。 – user2382771

回答

1

有相当多的教程在那里,但我敲了一个非常简单的例子给你,原谅稍微冲码等,希望你的想法。

  1. 您的REST接口:

    public interface MyRetrofit { 
    @POST("/users") 
    Call<MyResponse> postUser(@Body MyRequest body);} 
    
  2. 你改造创造

    OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder(); 
    
    Retrofit retrofit = new Retrofit.Builder() 
         .baseUrl("http://little-silence-8649.getsandbox.com") 
         .client(okHttpClientBuilder.build()) 
         .addConverterFactory(GsonConverterFactory.create()) 
         .build(); 
    
    apiInterface = retrofit.create(MyRetrofit.class); 
    
  3. 呼叫

    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); 
         } 
    }); 
    

这应该都是非常自我解释。您可以创建您的界面,在第一步中定义您的所有REST调用。然后在第二步中,您创建一个在ok http客户端和gson转换器中传递的实例。 gson转换器将您的请求转换为json。

然后最后通话。我创建了一个请求,这只是一个pojo,并通过改进api传递给它。我们使用入队,因为我们在主线程上,并且我们想要改进以在新线程上处理联网。完成改造后,我们会回传onResponse或onFailure。

希望它有帮助。

P.S此示例使用Sandbox其是用于REST接口惊人的测试工具。

+0

感谢您的快速回复。但我已经通过创建POJO尝试了这种类型,但这不起作用。 – user2382771