実際に質問する前に、多くの参照をクロスチェックしました。ほとんどの人として、私は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 Monitor」で正しい返信が表示されます。しかし、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);
私のインターフェイスメソッドを追加すること
更新 私は、サーバーからのコードスニペットの一部を得ることができました。バックエンドがJSON形式のデータであなたを返信しない
Response.status(200).entity("Response Success").build()
ポスト 'MyResponseModel'を。おそらくそれは正しい形式ではありません。 – azizbekian
サーバ(JSONデータ)から返されたキー値のペアがないので空です。クラス内に文字列変数を定義する必要がありますか? – Android
*私の問題はかなり具体的です*どのようにそうですか?これらの問題はすべて同じです:jsonデータはコンバータが期待したものではありません。 gsonコンバーターが唯一の有効なjsonを見つけられない(可能ですが) –