如何使用 ETrade 获取 OptionQuote API
how to get OptionQuote with ETrade API
我正在尝试使用他们的 Java SDK 从 Etrade 获取期权报价。我目前正在设置使用沙箱。
代码如下:
ProductId prod = callOption.getProduct();
ArrayList<String> symbols = new ArrayList<String>();
// getSymbol returns GOOG Jan 22 '11 0 Call
symbols.add(prod.getSymbol());
// m is a MarketClient instance
QuoteResponse quotes = m.getQuote(symbols, true, DetailFlag.OPTIONS);
当我调用 m.getQuote 时出现错误。错误是
ERROR ConnectionUtils - Invalid uri 'https://etwssandbox.etrade.com/market/sandbox/rest/quote/GOOG Jan 22 '11 0 Call': escaped absolute path not valid
我试过使用 html (org.apache.commons.lang.StringEscapeUtils.escapeHtml) 转义,但没有成功。
知道哪里出了问题吗?
这是因为你的 url 中有特殊字符(空格之类的)。
您可以为此使用 URL 编码器库。
您必须传入整个 url 的字符串,这将为您提供一个编码的 url。
String encodedUrl = URLEncoder.encode(<url>);
有关详细信息,请参阅文档 https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html
我正在尝试使用他们的 Java SDK 从 Etrade 获取期权报价。我目前正在设置使用沙箱。
代码如下:
ProductId prod = callOption.getProduct();
ArrayList<String> symbols = new ArrayList<String>();
// getSymbol returns GOOG Jan 22 '11 0 Call
symbols.add(prod.getSymbol());
// m is a MarketClient instance
QuoteResponse quotes = m.getQuote(symbols, true, DetailFlag.OPTIONS);
当我调用 m.getQuote 时出现错误。错误是
ERROR ConnectionUtils - Invalid uri 'https://etwssandbox.etrade.com/market/sandbox/rest/quote/GOOG Jan 22 '11 0 Call': escaped absolute path not valid
我试过使用 html (org.apache.commons.lang.StringEscapeUtils.escapeHtml) 转义,但没有成功。
知道哪里出了问题吗?
这是因为你的 url 中有特殊字符(空格之类的)。
您可以为此使用 URL 编码器库。
您必须传入整个 url 的字符串,这将为您提供一个编码的 url。
String encodedUrl = URLEncoder.encode(<url>);
有关详细信息,请参阅文档 https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html