从Android maven中的url读取简单的json文件

时间:2013-02-27 09:08:10

标签: android json spring rest maven

所以我想使用restTemplate.getForObject从url加载一个简单的JSON文件。 我创建了一个只有一个字符串的简单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();

1 个答案:

答案 0 :(得分:1)

您必须使用AsyncTasks来获取带有url的对象,因为您无法在主线程中执行此操作。