2016-11-17 64 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