%@ page language="java" %><%@ page contentType="text/xml" %><%@ page import="java.io.*" %><%@ page import="java.net.*" %><%@ page import="java.util.*" %><%
// getQuote.jsp
//
// by Anders Brownworth - anders-getQuote at anders.com
//
// This code is licensed under the GPL.
//
// accepts a "symbol" parameter, gets CSV data from finance.yahoo.com and returns
// some XML with the quote information in the form:
//
//
//
// AAPL
// APPLE COMPUTER
// 37.5299
// 7/8/2005 11:06am
// -0.1001 - -0.27%
//
String symbol = (String) request.getParameter( "symbol" );
if ( symbol != null ) {
String csvString;
URL url = null;
URLConnection urlConn = null;
InputStreamReader inStream = null;
BufferedReader buff = null;
String companyName = "";
String lastTrade = "";
String lastTradeDate = "";
String lastTradeTime = "";
String change = "";
try {
url = new URL( "http://quote.yahoo.com/d/quotes.csv?s=" + symbol + "&f=snl1d1t1c" );
urlConn = url.openConnection( );
inStream = new InputStreamReader( urlConn.getInputStream( ) );
buff = new BufferedReader( inStream );
// get the quote as a csv string
csvString = buff.readLine( );
// parse the csv string
StringTokenizer tokenizer = new StringTokenizer( csvString, "\",\"" );
symbol = tokenizer.nextToken( );
companyName = tokenizer.nextToken( );
lastTrade = tokenizer.nextToken( );
lastTradeDate = tokenizer.nextToken( );
lastTradeTime = tokenizer.nextToken( );
change = tokenizer.nextToken( );
}
catch( MalformedURLException e ) {
System.out.println( "Please check the spelling of the URL: " + e.toString( ) );
}
catch( IOException e1 ) {
System.out.println( "Can't read from the Internet: " + e1.toString( ) );
}
finally {
try {
inStream.close( );
buff.close( );
}
catch( Exception e ){
e.printStackTrace( );
}
}
%>
<%= symbol %>
<%= companyName %>
<%= lastTrade %>
<%= lastTradeDate %> <%= lastTradeTime %>
<%= change %>
<% } else { %>
No symbol requested.
<% } %>