1
私はいくつかのjacksonアノテートされたクラスを返すテストhttpサーバを持っていて、1つのメソッドは生の文字列を返します。 ジャクソン注釈付きクラスはjsonストリングにうまくシリアル化されますが、getUserName()によって返されるストリングはjsonシリアライズされません。 私が使用しているRetrofitクライアントは、getUserName()メソッドによって返された文字列がjsonのシリアル化になると予想し、逆シリアル化中に例外をスローします。 このメソッドから返された文字列を逆シリアル化しないように、retrofitに通知するために使用できる注釈がありますか?改造HTTPクライアントを使用して文字列を読み取る
=====テストHTTPサーバ=====
@Path("v1/testserver")
public class TestServer {
@GET
@Path("username")
public String getUserName() {
return "Dummy user name";
}
.........
}
=====テストHttpクライアント.addConverterFactoryを使用してレトロフィット=====
public interface RetrofitTestService {
@GET("username")
Call<String> getUserName();
}
public class TestClient {
public static void main(String[] args) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://localhost:8080/v1/testserver/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
RetrofitTestService service = retrofit.create(RetrofitTestService.class);
Call<String> userName = service.getUserName();
try {
System.out.printf("UserName: " + userName.execute().body());
} catch (IOException e) {
e.printStackTrace();
}
}
}
.addConverterFactory(ScalarsConverterFactory.create())をRetrofitに追加しようとしましたが、それでも問題はありませんでした。 –
詳細についてはこちらをご覧ください:https://github.com/square/retrofit/issues/1151 –