2015-08-31 40 views
-1

我想在序列化傳遞對象之後獲取請求對象的內容。我想了解改造是如何使我的目標成爲現實。翻新獲得請求的主體

@POST("/RegisterNewDevice") 
public void registerDevice (@Body Device device, 
    retrofit.Callback<ResultBooleanResponse> callback); 

如何改造將代表我的設備對象?假設它定義如下:

public class Device { 
    private int id; 
    private String deviceName; 

    //... constructors, getters and setters ...// 

} 

由於https連接用於我的服務,我不能輕易攔截它。

+0

如果你已經在你的依賴包括GSON,改造將使用該序列化的POJO。 –

+0

好的,但它會按照請求的內容進行嗎?基於此,我正在構建一項服務,但它不起作用。使用外部工具的相同請求,按預期工作。 – shadox

+0

我建議你通過這個[回答](http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-the-body-of-a-retrofit-request) –

回答

0

我認爲@SerializedName應該可以幫到你。 請記住,只有當您的請求是POST,PUT類型時才能使用請求主體。

public class SampleRequestBody { 
    @SerializedName("param1") 
    final String param1; 

    @SerializedName("param2") 
    final int param2; 

    // public constructer 
} 

如果您的請求是GET,DELETE,..類型,所以你應該使用@Query

@POST("/abc/def") 
void methoName(@Query("param_name") String param, Callback<type> callback); 
+0

我需要HTTP/HTTPS請求主體的內容。我想看看它是如何序列化我的信息。如果有一個點,如果有一個括號......等等。問題實際上是https連接,所以我必須編寫一個小的servlet來準確地確定內容,但是隻能從改進的角度來看,我只是沒有弄清楚如何做到這一點。 – shadox