天天看點

Okhttp直接用String或者json接收(ResponseBody)

和背景開發調試接口,封裝的okhttp預設使用json解析,而且背景傳回的格式都是json類型的

比如這種

{
    "result":null,
    "code":90201,
    "success":false,
    "msg":"店鋪相關配置錯誤"
}
           

接收

@Headers({"url:" + BuildConfig.UR_MESSAGE})
    @GET(UrlManager.URL_MESSAGE + "/SetReady")
    Observable<BaseMode<String>> setReady(@QueryMap Map<String, String> req);
           

但是後來調試一個接口背景直接傳回了一個字元串,沒有按照json格式傳回,直接傳回如下格式:

“https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=XXXXXXX”
           

想着直接在傳回解析的地方用String接收,結果還是異常,是以看一些設定決定用ResponseBody進行接收,接收完之後自己擷取相關資訊,然後在ResponseBody中擷取自己需要的資訊

@Headers({"url:" + BuildConfig.UR_MESSAGE})
    @GET(UrlManager.URL_WE_CHAT + "/GetQrCodeUrl")
    Observable<ResponseBody> getQrCodeUrl(@QueryMap Map<String, Object> req);