我正在考虑制作我的第一个Android应用程序,它是关于电影的,我发现了一个很好的数据源,它是" http://www.google.com/movies?"但我想知道如何提取这些信息并将其放入我的应用程序中
我已经搜索过,但我不知道哪种方法最适合这样做?谷歌有这个API吗?那是我想要的吗?使用源代码是否更好?我可以阅读或看到学习如何做到这一点?
非常感谢,我是第一次编程从云中检索信息,
欢呼声
答案 0 :(得分:0)
让您的生活更轻松,选择适合您的api。选择以下其中一个:
不仅要根据内容做出决定,还要根据易用性和文档做出决定。文档很重要。
祝你好运!答案 1 :(得分:0)
我宁愿建议您使用TheMovieDB.com API这很简单,并提供电影的所有信息。
答案 2 :(得分:0)
烨。这是一种方法。
首先,您需要找到SQL的来源。 Yahoo Developer Console是寻找这类东西的好地方。它有一切。这些资源的工作方式是你有一个很长的链接,像这样.... developer.yahoo.com/blah/this。 。 。 & q = KEYWORD_HERE + blah /。 。
要访问您正在寻找的信息,您可以坚持正确的关键字在哪里" KEYWORD_HERE"是的,链接将以SQL格式提供信息。我将做一个股票应用程序的例子。
首先创建一个Activity并将链接的两侧定义为字符串。它看起来有点像这样:
public class InfoActivity extends Activity {
String firstHalf = "http://query.yahooapis.com/v1/public/blahblahblah&q=";
String secondHalf = "+blah/blah&blah . . . ";
然后,在你的onCreate中,你需要启动一个aSync任务来进行实际的拉取和解析:
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.id.layout_name);
final String yqlURL = firstHalf + KEYWORD_HERE + secondHalf;
new MyAsyncTask().execute(yqlURL);
}
然后定义我们的MrAsyncTask:
private class MyAsyncTask extends AsyncTask<String, String, String>{
protected String doInBackground(String... args) {
try {
URL url = new URL(args[0]);
URLConnection connection;
connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
// Tests if responseCode == 200 Good Connection
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream in = httpConnection.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = db.parse(in);
Element docEle = dom.getDocumentElement();
NodeList nl = docEle.getElementsByTagName("nodeName1");
if (nl != null && nl.getLength() > 0) {
for (int i = 0 ; i < nl.getLength(); i++) {
//Parse the node here with getTextValue(n1, "Name of element")
//ex: String movieName = getTextValue(n1, "MovieName");
}
}
}
} catch (MalformedURLException e) {
Log.d(TAG, "MalformedURLException", e);
} catch (IOException e) {
Log.d(TAG, "IOException", e);
} catch (ParserConfigurationException e) {
Log.d(TAG, "Parser Configuration Exception", e);
} catch (SAXException e) {
Log.d(TAG, "SAX Exception", e);
}
finally {
}
return null;
}
我希望能让你知道如何做这类事情。我会去看看我是否可以在雅虎apis上快速发现一个好资源,以便在某个位置获得电影时间。
祝你好运:)如果你需要澄清任何事情,请告诉我。编辑: 看起来这完全是你需要的(资源明智的): https://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select+ * + +从+ google.igoogle.movies其中+电影%3D&#39; 68105&#39;%3B
检查出来。使用它,你的两半链接将是:
String firstHalf = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20google.igoogle.movies%20where%20movies%3D'"
String secondHalf = "'%3B&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
然后要获得最后的链接,你就可以了
String yqlURL = firstHalf + "ZIP CODE OF YOUR LOCATION" + secondHalf;
你会把你附近的所有电影都归还给你了!