本文整理了Java中jgnash.net.YahooCrumbManager
类的一些代码示例,展示了YahooCrumbManager
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。YahooCrumbManager
类的具体详情如下:
包路径:jgnash.net.YahooCrumbManager
类名称:YahooCrumbManager
[英]Manages the Cookie and Crumb required to connect to the yahoo finance APIs.
The cookie and crumb is cached and reused
[中]管理连接雅虎财务API所需的Cookie和crump。
饼干和面包屑被缓存并重复使用
代码示例来源:origin: ccavanaugh/jgnash
if (!YahooCrumbManager.authorize(securityNode.getSymbol())) {
return events;
connection.setRequestProperty("Cookie", YahooCrumbManager.getCookie());
YahooCrumbManager.clearAuthorization();
} else {
try (final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),
YahooCrumbManager.clearAuthorization();
} finally {
if (connection instanceof HttpURLConnection) {
代码示例来源:origin: ccavanaugh/jgnash
private static String buildYahooQuery(final SecurityNode securityNode, final LocalDate startDate,
final LocalDate endDate, final SecurityHistoryEventType event) {
// dividend 1/1/1962 to 8/22/2015
// https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252442800&period2=1440216000&interval=1d&events=div&crumb=oTulTvLJSBg
// splits
// https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252442800&period2=1440216000&interval=1d&events=split&crumb=oTulTvLJSBg
// History
// https://query1.finance.yahoo.com/v7/finance/download/IBM?period1=-252442800&period2=1440216000&interval=1d&events=history&crumb=oTulTvLJSBg
final LocalDateTime epoch = LocalDateTime.of(1970, Month.JANUARY, 1, 0, 0);
long period1 = ChronoUnit.SECONDS.between(epoch, LocalDateTime.of(startDate, LocalTime.MIN));
long period2 = ChronoUnit.SECONDS.between(epoch, LocalDateTime.of(endDate, LocalTime.MAX));
final StringBuilder builder = new StringBuilder("https://query1.finance.yahoo.com/v7/finance/download/");
builder.append(securityNode.getSymbol())
.append("?period1=").append(period1)
.append("&period2=").append(period2)
.append("&interval=1d&events=");
switch (event) {
case DIVIDEND:
builder.append("div");
break;
case PRICE:
builder.append("history");
break;
case SPLIT:
builder.append("split");
break;
}
builder.append("&crumb=").append(YahooCrumbManager.getCrumb());
return builder.toString();
}
代码示例来源:origin: ccavanaugh/jgnash
clearAuthorization();
代码示例来源:origin: ccavanaugh/jgnash
public static Set<SecurityHistoryEvent> retrieveNew(@NotNull final SecurityNode securityNode,
final LocalDate endDate) {
final Set<SecurityHistoryEvent> events = new HashSet<>();
// Ensure we have a valid cookie and crumb
if (!YahooCrumbManager.authorize(securityNode.getSymbol())) {
return events;
}
LocalDate startDate = LocalDate.now().minusDays(1);
final List<SecurityHistoryNode> historyNodeList = securityNode.getHistoryNodes();
if (!historyNodeList.isEmpty()) {
startDate = historyNodeList.get(0).getLocalDate();
}
events.addAll(retrieveNewDividends(securityNode, startDate, endDate));
events.addAll(retrieveNewSplits(securityNode, startDate, endDate));
return events;
}
代码示例来源:origin: ccavanaugh/jgnash
@Test
void testHistoricalDownload() {
// try 3 times to pass
for (int i = 0; i < 3; i++) {
final SecurityNode ibm = new SecurityNode(e.getDefaultCurrency());
ibm.setSymbol("IBM");
ibm.setScale((byte) 2);
e.addSecurity(ibm);
YahooCrumbManager.clearAuthorization(); // force re-authorization to prevent failed unit test
final List<SecurityHistoryNode> events = YahooEventParser.retrieveHistoricalPrice(ibm, LocalDate.of(2016,
Month.JANUARY, 1), LocalDate.of(2016, Month.DECEMBER, 30));
if (events.size() == 252) {
assertEquals(252, events.size());
return;
}
}
fail("Failed to pass test");
}
}
内容来源于网络,如有侵权,请联系作者删除!