そこで、restTemplate.getForObjectを使用してURLから単純なJSONファイルをロードしたいと思います。文字列が1つだけの単純なjsonファイルを作成しましたが、Androidはそれを読み込めません。ただし、エミュレーターのブラウザーでURLを入力すると、ブラウザーにjsonファイルが表示されます。
restTemplate.getForObjectで機能しない理由はありますか?
私のコード:
ServerCaller:
private static final String ipAddress = "192.168.56.1:8080";
private RestTemplate restTemplate = new RestTemplate();
private String test;
private List<HttpMessageConverter<?>> messageConverters;
private static ServerCaller instance = null;
private ServerCaller(){
messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(messageConverters);
}
private static void createMessageService(){
if(instance == null){
instance = new ServerCaller();
}
}
public static ServerCaller getInstance(){
if(instance == null){
createMessageService();
}
return instance;
}
public ServerError getTest() {
try {
test = restTemplate.getForObject("http://" + ipAddress + "/ProjectTeamF-1.0/service/getTest.json", String.class);
} catch (ResourceAccessException rae) {
return ServerError.ServerNotFound;
} catch (HttpServerErrorException hsee) {
return ServerError.WrongData;
} catch (Exception e) {
return ServerError.OtherError;
}
return ServerError.NoError;
}
public String pakTest(){
return test;
}
それから私の見解では:
serverCaller.getTest();
ServerError se = serverCaller.getTest();
Toast.makeText(getApplicationContext(),serverCaller.pakTest(),Toast.LENGTH_SHORT).show();