在實際詢問問題之前,我已經交叉檢查了很多參考。正如大多數人所說,我正在調用Web服務並獲得上述結果。我的問題是,而更具體的,所以之前問我要補充我code snippet
public static WebService getRestService(String newApiBaseUrl, String accessToken)
{
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(logging);
}
Gson gson = new GsonBuilder()
.setLenient()
.create();
restBuilder = new Retrofit.Builder()
.baseUrl(newApiBaseUrl)
.client(httpClient.build())
.addConverterFactory(GsonConverterFactory.create(gson));
if (accessToken != null) {
AuthenticationInterceptor interceptor =
new AuthenticationInterceptor(accessToken);
if (!httpClient.interceptors().contains(interceptor)) {
httpClient.addInterceptor(interceptor);
restBuilder.client(httpClient.build());
}
}
retrofit = restBuilder.build();
return retrofit.create(WebService.class);
}
請忽略的解釋。這是我的服務生成器類,通過它調用所有的Web服務。我正在調用一個POST方法,它會返回一個簡單的響應。
我可以在「Android監視器」中看到我的正確答案。但是當它通過JsonConverterFactory時,它給了我上面的錯誤。有一件事我確定Web服務正在返回一個簡單的文本響應,因爲沒有具體的東西返回到應用程序。有沒有一種方法可以將我的文本回復轉換爲類。如果我遺漏了任何東西,請免費回覆。
也增加了我的接口方法
@Headers({
Constants.ApiHeader.CONTENT_TYPE_JSON
})
@POST("POST_URL/{number}")
Call<MyResponseModel> getActualProductLocation(@Header("access_token") String accessToken, @Path("number") String number, @Body List<MyRequestModel> body);
更新 我設法從服務器的代碼片段的一部分。這是他們的反應是什麼樣子:
Response.status(200).entity("Response Success").build()
帖子'MyResponseModel'。最有可能的是它的格式不正確。 – azizbekian
它是空的,因爲服務器沒有返回鍵值對(JSON數據)。我必須在類中定義任何字符串變量嗎? – Android
*我的問題更具體*如何?這些問題都是一樣的:json數據不是轉換器的預期。這是可能的gson轉換器不會找到一個單獨的字符串有效的json(它是,雖然) –