Java 如何解析txt web服务
我试图从java程序中的web服务中获得一个结果。我以前做过xml服务,但这次是基于文本的,我不知道如何记录响应 以下是Web服务:Java 如何解析txt web服务,java,web-services,Java,Web Services,我试图从java程序中的web服务中获得一个结果。我以前做过xml服务,但这次是基于文本的,我不知道如何记录响应 以下是Web服务: 谢谢 如果它只是文本,而您不使用任何标准格式(如SOAP),则需要使用套接字: URL myURL = new URL("http://ws.geonames.org/countryCode?lat=47.03&lng=10.2"); URLConnection serviceConnection = myURL.openConnection(); Buf
谢谢 如果它只是文本,而您不使用任何标准格式(如SOAP),则需要使用套接字:
URL myURL = new URL("http://ws.geonames.org/countryCode?lat=47.03&lng=10.2");
URLConnection serviceConnection = myURL.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
serviceConnection.getInputStream()));
List<String> response =new ArrayList<String>();
或者,如果您只有一行(如您问题中的Web服务),请使用此选项:
并以以下内容结束:
serviceConnection.close();
在我的例子中,countryCode是“AT”URL之外的另一种实现是使用HttpClient。REST服务使用什么实现?Jersey?典型的结果是什么?您希望得到什么?它将返回两个字母的国家代码,这就是我需要的。
String countryCode = in.readLine();
serviceConnection.close();
public class CountryCodeReader {
private String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public String readFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
InputStreamReader is = new InputStreamReader(is, Charset.forName("UTF-8"))
BufferedReader rd = new BufferedReader(is);
return readAll(rd);
} finally {
is.close();
}
return null;
}
public static void main(String[] argv) {
CountryCodeReader ccr = new CountryCodeReader();
String cc = ccr.readFromUrl("http://ws.geonames.org/countryCode?lat=47.03&lng=10.2");
}
}