Android Retrofit:带括号的网址' {}'导致错误

时间:2018-05-05 11:28:36

标签: android retrofit2

我正在尝试从以下api中获取数据:

https://site/api/requestpost/gethttp?dbName=ERP&PN=Mobile_CustomerList_P&JSONUser={"mb_code":"11111","pwd":"2222","id":"0000"}&JSONData={}

我的代码:

@GET(baseUrl+"gethttp?dbName=ERP&PN=Mobile_CustomerList_P&JSONUser={"+ "\"mb_code\":\"{key}\",\"pwd\":\"sj12\",\"id\":\"0000\"}&JSONData={{data}}")
            Call<ResponseBody> downloadData(@Path(value = "key") String code, @Path("data")String data);

,其中

baseURL = "https://site/api/requestpost/";
key = "1111";
data = "";

使用此代码我收到错误消息

...{{data}}"must not have replace block. For dynamic query parameters use @Query

因为这个api有&#39; {}&#39;在其中,它很难将其改装。

我猜这个错误是因为括号,但它们是api的一部分。

1 个答案:

答案 0 :(得分:3)

Retrofit希望您构建类似这样的服务接口:

@GET(baseUrl+"gethttp")
Call<ResponseBody> downloadData(
    @Query("dbName") String dbName,
    @Query("PN") String pn,
    @Query("JSONUser") String jsonUser,
    @Query("JSONData") String jsonData
);