2010-11-02 5 views
1

Как я могу вернуть xml-файл после вызова определенного WebResource? Мой текущий возвращает в виде строкиВозврат WebResource xml

WebResource webResource = client.resource("http://api.foursquare.com/v1/venues"); 
    MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); 
    queryParams.add("geolat", String.valueOf(lattitude)); 
    queryParams.add("geolong", String.valueOf(longitude)); 
    return webResource.queryParams(queryParams).get(String.class); 

позже я хочу использовать XPath для разбора XML, как было бы проще ... есть способ, чтобы получить его непосредственно к XML- или я должен создать xml из этой строки? Если мне нужно, то как я могу это сделать?

ответ

1

Я не уверен, что следующее будет работать, но, возможно, стоит попробовать.

Изменение:

return webResource.queryParams(queryParams).get(String.class); 

To:

return webResource.queryParams(queryParams).get(Source.class); 

В качестве альтернативы можно использовать API-интерфейсы Java.net и получить результат в виде потока. Следующий пример взято из my blog:

String uri = 
    "http://localhost:8080/CustomerService/rest/customers/1"; 
URL url = new URL(uri); 
HttpURLConnection connection = 
    (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setRequestProperty("Accept", "application/xml"); 

JAXBContext jc = JAXBContext.newInstance(Customer.class); 
InputStream xml = connection.getInputStream(); 
Customer customer = 
    (Customer) jc.createUnmarshaller().unmarshal(xml); 

connection.disconnect(); 
+0

Не могли бы вы показать мне какой-нибудь код? – aherlambang

+0

Обновлен мой ответ, чтобы включить некоторый код. –