Java 基本Android应用程序,用于获取用户通过的城市的当前温度

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

我昨天刚刚开始开发android应用程序,并对这项技术感到非常高兴

我需要创建一个应用程序,其中用户需要在edittext中输入城市名称,然后在textview中显示该城市的当前温度

我想使用下面的URL,我可以很容易地添加城市名称。 现在我经过悉尼


请帮我解决这个问题。

我想你想知道如何使用通过调用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