iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

跟Kotlin一起來聊Android元件 或許還有應用,或許還有一些資訊雜談系列 第 21

Retrofit 使用GET還要帶Body? 帶了還要被ERROR?

有時候在送API請求時,會遇到明明是GET還會帶上Body要填。

@GET("api/getBody")
    fun sendGetBody(
        @Body body: DataModel.sendGetBodyData
    ): Call<Void>

開心地送出編譯,然後就紅字ERROR了。

java.lang.IllegalArgumentException: Non-body HTTP method cannot contain @Body.

唔? 這不對吧。

這時候,想起Get請求時是可以有帶參數的用法,那就大膽的來試試。
上網查個資料發現有@Path跟@Query可以用。

@Path

當請求的網址,變數在路徑上
http://123567.com/api/News/{id}

這時候就是用@Path的時機了。

@GET("News/{Id}")
    fun getNews(@Path("Id")  newsId:String)
    :Call<Void>

@Query

當請求的網址,變數在問號後面

http://123567.com/api/News?id=123

@GET("News/")
    fun getNews(@Query("id")  id:Int)
    :Call<Void>

果然使用@Query後,就可以執行了。


上一篇
Retrofit X kotlin 圖片上傳功能實作
下一篇
來聊Jsoup : Jsoup粗略介紹以及作用
系列文
跟Kotlin一起來聊Android元件 或許還有應用,或許還有一些資訊雜談30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言