这是我的API请求:
auto f_1_0 = []()->int{return 5;};
std::function<int(void)> f_1_1 = []()->int{return 5;};
SomeType f_2 = []()->int{return 5;}; // what's the SomeType here?
我需要从上面得到2个值,即TEMPERATURE在位置和时间下面的“值”,我需要SYMBOL的“数字”低于位置和时间。但是现在我只试图获得温度值。
我遵循了不同的指南,但没有任何帮助。
这就是我现在所拥有的。在MainActivity里面我有:
http://api.met.no/weatherapi/locationforecast/1.9/?lat=59.91;lon=10.76
然后我打电话给:
private class TemperatureTask extends AsyncTask<String, Void, Void> {
TextView tv;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(String... Url) {
try {
URL url = new URL(Url[0]);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
nodelist = doc.getElementsByTagName("time");
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void args) {
Node node = nodelist.item(0);
if(node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
testView.setText(testView.getText() + "\nTemperature: "
+ getNode("location", element));
}
}
}
private static String getNode(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0)
.getChildNodes();
Node value = (Node) nodeList.item(0);
return value.getNodeValue();
}
无论如何,我没有得到任何例外,但
String apiUrl = "http://api.met.no/weatherapi/locationforecast/1.9/?lat=59.91;lon=10.76";
new TemperatureTask().execute(apiUrl);
什么都不返回。
我能做些什么才能获得温度?这需要花费大量时间的原因是我看到的大多数XML都没有这种格式,其属性有很多这样的值。