2017-02-09 10 views
0

Я пытаюсь получить цитату из Etrade, используя их Java SDK. В настоящее время я настроен для использования песочницы.Как получить OptionQuote с API-интерфейсом ETrade

вот код:

ProductId prod = callOption.getProduct(); 

ArrayList<String> symbols = new ArrayList<String>(); 
// getSymbol returns GOOG Jan 22 '11 $150 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 $150 Call': escaped absolute path not valid 

Я попытался с помощью HTML (org.apache.commons.lang.StringEscapeUtils.escapeHtml) вытекающее не повезло.

Любые идеи, что не так?

ответ

1

Это потому, что у вас есть специальные символы (пробелы и что нет) в вашем URL-адресе.

Вы можете использовать библиотеку кодировщика URL для этого.

Вам нужно будет передать строку всего URL-адреса, которая предоставит вам закодированный URL-адрес.

String encodedUrl = URLEncoder.encode(<url>); 

Для получения дополнительной информации, здесь документация https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html