gpt4 book ai didi

java - Android 金融 API

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:42 36 4
gpt4 key购买 nike

我正在尝试创建一个新应用程序,我想获取股票更新、货币兑换更新等。您能否推荐一些免费的 API 来获取这些更新?我已经试过了:

1) Google 财经 API不使用的原因:已弃用并即将关闭,这将使我的应用程序过时。

2) 雅虎金融 API不使用的原因:没有合适的文档。原因是雅虎实际上没有财务 API。似乎有些人对他们用来提取财务数据的 API 进行了逆向工程,但他们违反了雅虎的服务条款。我不想那样做。 (阅读自http://developer.yahoo.com/forum/General-Discussion-at-YDN/Using-Yahoo-Finance-API-Not-RSS-/1250246255000-0b82f8f0-7f48-3af2-8fe2-e73a138cbfaa)

如果提供指向某些资源或代码的链接,那就太好了。提前感谢您的帮助。

最佳答案

现在使用 yql。

查询:"http://query.yahooapis.com/v1/public/yql?q=select%20rate%2Cname%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload .finance.yahoo.com%2Fd%2Fquotes%3Fs%3D"
+ 来自
+ 到
+ "%253DX%26f%3Dl1n'%20and%20columns%3D'rate%2Cname'&format=json&callback=parseExchangeRate"

代码 fragment :

private static String convertStreamToString(InputStream is) {
/*
* To convert the InputStream to String we use the
* BufferedReader.readLine() method. We iterate until the BufferedReader
* return null which means there's no more data to read. Each line will
* appended to a StringBuilder and returned as String.
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();

String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}

/*
* This is a test function which will connects to a given rest service and
* prints it's response to Android Log with labels "Praeda".
*/
public static String[] connect(String url) {
HttpClient httpclient = new DefaultHttpClient();
String[] str = new String[5];

// Prepare a request object
HttpGet httpget = new HttpGet(url);

// Execute the request
HttpResponse response;
try {
response = httpclient.execute(httpget);
// Examine the response status
Log.d(TAG, response.getStatusLine().toString());

// Get hold of the response entity
HttpEntity entity = response.getEntity();
// If the response does not enclose an entity, there is no need
// to worry about connection release

if (entity != null) {

// A Simple JSON Response Read
InputStream instream = entity.getContent();
String result = convertStreamToString(instream);
result=result.replace("parseExchangeRate(", "").replace(");", "");
Log.d(TAG, result);

// A Simple JSONObject Creation
JSONObject json = new JSONObject(result);
Log.d(TAG, "<jsonobject>\n" + json.toString()
+ "\n</jsonobject>");

// A Simple JSONObject Parsing
// JSONArray nameArray=json.names();
// Log.i("query",nameArray.toString());
// JSONObject query=json.getJSONObject("query");
// Log.i("query",query.toString());
// JSONArray results=query.getJSONArray("results");
// Log.i("rslts",results.toString());
// JSONArray quote=results.getJSONArray("quote");
// JSONObject quote=results.getJSONObject("quote");
// Log.i("quote",quote.toString());
JSONObject query = json.getJSONObject("query");
Log.d(TAG, query.toString());
JSONObject results = query.getJSONObject("results");
Log.d(TAG, results.toString());
JSONObject quote = results.getJSONObject("row");
Log.d(TAG, quote.toString());
for (int i = 0; i < quote.length(); i++) {

// Log.i("Praedafor","<jsonname"+i+">\n"+nameArray.getString(i)+"\n</jsonname"+i+">\n"
// +"<jsonvalue"+i+">\n"+valArray.getString(i)+"\n</jsonvalue"+i+">");
// JSONObject quotes = results.getJSONObject(i)
// .getJSONObject("quote");
// Log,i
// Log.i("name",quote.getString("Name"));
// Log.i("name","pahunch");
// Log.i("name",quote.getString("Symbol"));

// Log.i("name",quote.getString("DaysLow"));

// Log.i("name",quote.getString("DaysHigh"));

// Log.i("name",quote.getString("Open"));

// Log.i("name",quote.getString("PreviousClose"));
String symbol = quote.getString("rate");
str[0] = symbol;
String dayslow = quote.getString("DaysLow");
str[1]=dayslow;
// tv1.setText(quote.getString("DaysLow"));
str[2]= quote.getString("DaysHigh");
str[3]= quote.getString("Open");
str[4]= quote.getString("Change");
}

// A Simple JSONObject Value Pushing
// json.put("execution-start-time", "sample value");
Log.d(TAG, "<jsonobject>\n" + json.toString()
+ "\n</jsonobject>");
// Log.i("Praeda12",json.get("").toString());

// Closing the input stream will trigger connection release
instream.close();
}

} catch (ClientProtocolException e) {
Log.d(TAG, "ClientProtocolException");
e.printStackTrace();
} catch (IOException e) {
Log.d(TAG, "IOException " + e.getMessage());
e.printStackTrace();
} catch (JSONException e) {
Log.d(TAG, "JSONException " + e.getMessage());
e.getMessage();
}
return str;
}

关于java - Android 金融 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293593/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com