我已知一个服务器开放的访问地址查询不同城市的天气,城市名称作为url地址的一个参数,用浏览器访问可以得到相应城市的xml格式的天气信息,但是我在手机中使用HttpURLConnection请求服务器得到的只是天气信息的xml完整结构而没有数据,,我已经对中文城市名进行了utf8编码,服务器返回的xml中也含有该城市的名称,就是没有天气数据,请问各位这是为什么?
其中,city_name已经进行了utf8编码,address是url的前一段
String request = address+city_name;
url = new URL(request);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
read = conn.getInputStream();
bfr = new BufferedReader(new InputStreamReader(read));
while((line=bfr.readLine())!=null){
sb.append(line);
}
String result = sb.toString();
获取到服务器的xml数据,还要进行解析!如果获取不到xml数据,可能是你实例化URL对象时,那个路径的问题,你的路径address+city_name,如果是get方式的话,应该要加上&参数这样的!
估计是你的城市编码错误,导致服务器没有找到这个城市。
不知道你用的是哪个web service。但是如果你用的是常见的那些,都可以google找到现成的调用代码,自己对比参考下。
另外,既然你是get,你可以在url = new URL(request);下断点
看request是什么,把这个地址复制到浏览器,打开,看看返回什么,是否正确。
谢谢各位了,我今天将utf8编码换成了gbk对城市中文名进行编码就可以了,之前真没有想到会是gbk