如何从Web到Android应用程序获取数据?

时间:2012-06-07 02:35:43

标签: android asp.net

我是android初学者。我正在为android编写股票市场应用程序。我不知道如何做到这一点,我该怎么做才能获得有关股市的数据?

4 个答案:

答案 0 :(得分:1)

首先,您应该知道什么是API和Web服务;以及他们如何工作聚集。例如BSE API,Google Finance Api,Yahoo API。

在研究它们之后,你可以将它们集成到android代码中;解析web-services返回的数据和结果,然后你可以在android模拟器上显示它们。

这是你应该如何进步的。

你可以查看library这可以帮助你将google finance api与你的Android代码集成。尝试为这些内容搜索更多示例代码,您可以这样做。

答案 1 :(得分:0)

您正在寻找的内容存在于java.net包中。您将要创建一个指向您的网络应用的URL或用于股票市场数据的API,然后以适当的形式获取它。它应该是:

URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html");
URLConnection urlConnection = url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
try {
  readStream(in);
 finally {
  in.close();
}

(取自http://developer.android.com/reference/java/net/URLStreamHandler.html

请务必先在您的应用权限中请求网络访问权限。

答案 2 :(得分:0)

请参阅IBM的this股票市场教程,了解如何使用Android中的互联网数据检索股票的最新定价信息。

答案 3 :(得分:0)

在您的活动类中使用此类 它扩展了AsyncTask,这是在后台执行任务的一个非常好的选择,因为它可以提高应用程序的整体性能。

private class DownloadFromWeb extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {
        String response = "";
        for (String url : urls) {
            DefaultHttpClient client = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            try {
                HttpResponse execute = client.execute(httpGet);
                InputStream content = execute.getEntity().getContent();

                BufferedReader buffer = new BufferedReader(
                        new InputStreamReader(content));
                String s = "";
                while ((s = buffer.readLine()) != null) {
                    response += s;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return response;
    }

    @Override
    protected void onPostExecute(String result) {
    //Do whatever you want with result string...
    }
}

现在将此类用作:

DownloadFromWeb task = new DownloadFromWeb ();
task.execute("http://www.google.com"); //replace the URL with your URL

希望它有所帮助!!!