Java 基本Android应用程序,用于获取用户通过的城市的当前温度
我昨天刚刚开始开发android应用程序,并对这项技术感到非常高兴 我需要创建一个应用程序,其中用户需要在edittext中输入城市名称,然后在textview中显示该城市的当前温度 我想使用下面的URL,我可以很容易地添加城市名称。 现在我经过悉尼Java 基本Android应用程序,用于获取用户通过的城市的当前温度,java,android,google-maps-api-3,android-2.2-froyo,Java,Android,Google Maps Api 3,Android 2.2 Froyo,我昨天刚刚开始开发android应用程序,并对这项技术感到非常高兴 我需要创建一个应用程序,其中用户需要在edittext中输入城市名称,然后在textview中显示该城市的当前温度 我想使用下面的URL,我可以很容易地添加城市名称。 现在我经过悉尼 请帮我解决这个问题。我想你想知道如何使用通过调用url获得的XML文档 DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new Http
请帮我解决这个问题。我想你想知道如何使用通过调用url获得的XML文档 DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(http://www.google.com/ig/api?weather=sydney); httpget.setHeader("Content-Type", "application/xml"); ResponseHandler responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httpget, responseHandler); DefaultHttpClient httpclient=新的DefaultHttpClient(); HttpGet HttpGet=新HttpGet(http://www.google.com/ig/api?weather=sydney); setHeader(“内容类型”、“应用程序/xml”); ResponseHandler ResponseHandler=新BasicResponseHandler(); 字符串responseBody=httpclient.execute(httpget,responseHandler); 这基本上就是你需要的。响应正文应该包含xml文档。在那里你应该能测到你的体温
您可以通过向HttpClient构造函数添加凭据和其他参数来改进这一点。例如,请参见对此调用的响应返回XML。您需要在DOM和SAX之间做出选择,以解析xml响应。先从谷歌的android xml解析开始。我找到了这一个链接,还有更多。祝你一切顺利
使用SAX解析器,您可以执行以下操作 /*用HTML等价物替换空格*/ //url=新url(queryString.replace(“,“%20”)
/*从SAXPArserFactory获取SAXParser*/
SAXParserFactory spf=SAXParserFactory.newInstance();
SAXParser sp=spf.newSAXParser();
/*获取我们创建的SAXParser的XMLReader*/
XMLReader xr=sp.getXMLReader();
/*
*创建新的ContentHandler并将其应用于
*XML读取器
*/
GoogleWeatherHandler gwh=新的GoogleWeatherHandler();
xr.setContentHandler(gwh);
/*使用HTTPClient处理URL*/
HttpClient HttpClient=新的DefaultHttpClient();
HttpGet-HttpGet=newhttpget(queryString.replace(“,“%20”);
d(DEBUG_标记,“正在执行请求”+httpget.getURI());
//创建一个响应处理程序
ResponseHandler ResponseHandler=新BasicResponseHandler();
Log.i(“响应处理程序”、“步骤1”);
字符串responseBody=httpclient.execute(httpget,responseHandler);
Log.d(DEBUG_标记,“来自httpclient的响应:\n”+responseBody);
ByteArrayInputStream=新的ByteArrayInputStream(responseBody.getBytes());
xr.parse(新输入源(is));
d(DEBUG_标记,“parse complete”);
//解析完成
您知道webservice呼叫吗?i、 HTTP呼叫?我在你的问题中找不到任何“满意的问题”…这是你的错,塞尔文。。缺乏理智是有可能的;我会上传到某个地方,并在这里给出url。
/* Get a SAXParser from the SAXPArserFactory. */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
/* Get the XMLReader of the SAXParser we created. */
XMLReader xr = sp.getXMLReader();
/*
* Create a new ContentHandler and apply it to the
* XML-Reader
*/
GoogleWeatherHandler gwh = new GoogleWeatherHandler();
xr.setContentHandler(gwh);
/* Use HTTPClient to deal with the URL */
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(queryString.replace(" ", "%20"));
Log.d(DEBUG_TAG, "executing request " + httpget.getURI());
// create a response handler
ResponseHandler<String> responseHandler = new BasicResponseHandler();
Log.i("Respond Handler","Step 1");
String responseBody = httpclient.execute(httpget, responseHandler);
Log.d(DEBUG_TAG, "response from httpclient:\n "+responseBody);
ByteArrayInputStream is = new ByteArrayInputStream(responseBody.getBytes());
xr.parse(new InputSource(is));
Log.d(DEBUG_TAG, "parse complete");
// parse complete