我正在升级一些从服务器获取数据的传统Android / Java代码。遗留代码使用HttpURLConnection并引入inputStream并将其转换为GZipInputStream。然后将结果转换为JSONObject。然后手动解析数据。这一切都很好,这意味着返回有效的json,因为它以'{'
开头我正在尝试使用Retrofit2和GsonConverterFactory来升级此代码,以便我可以将json自动映射到Classes。
我收到错误:预计BEGIN_OBJECT但是第1行第1行STRING
这告诉我数据是作为字符串而不是JSON对象进入的。
注意:我正在为遗留代码和新的Retrofit实现发送相同的标题和查询参数 - 但结果不同 - 无法找出原因。
答案 0 :(得分:0)
问题是服务器期望我的所有查询参数都在一个字段和名为“Object”的字段中,并且采用json格式,即:Object = {“field1”:“fieldOneValue”,“field2”: “fieldTwoValue”} AND必须是Url Uncoded Format:
@FormUrlEncoded
@POST("testing/myapi.api")
Observable<MyClass> getMyApiData(@Url String url, @Field("Object") String object);