1 / 24

Generic Connection Framework

Connection. Generic Connection Framework. InputConnection. OutputConnection. StreamConnection. FileConnection. SocketConnection. HTTPConnection. Connection. void close(). Generic Connection Framework. InputConnection. OutputConnection. StreamConnection. FileConnection.

halima
Download Presentation

Generic Connection Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Connection Generic Connection Framework InputConnection OutputConnection StreamConnection FileConnection SocketConnection HTTPConnection

  2. Connection void close() Generic Connection Framework InputConnection OutputConnection StreamConnection FileConnection SocketConnection HTTPConnection

  3. Connection void close() Generic Connection Framework DOS openDataOutputStream() DIS openDataInputStream() InputConnection OutputConnection DOS openOutputStream() DIS openInputStream() StreamConnection FileConnection SocketConnection HTTPConnection

  4. Connection void close() Generic Connection Framework DOS openDataOutputStream() DIS openDataInputStream() InputConnection OutputConnection DOS openOutputStream() DIS openInputStream() StreamConnection FileConnection SocketConnection HTTPConnection String getURL() String getHost() String getPort() long getExpiration() long getLastModified() int getResponseCode()

  5. HttpConnection API API for processing the URL: http://www.google.com/search?hl=en&q=java http – protocol www.google.com – server search?hl=en&q=java – file hl=en&q=java – query string

  6. HttpConnection API API for processing the URL: String url = “http://www.google.com/search?hl=en&q=java”; HttpConnection conn = (HttpConnection) Connector.open(url); hc.getURL() -- “http://www.google.com/search?hl=en&q=java”; hc.getProtocol() -– “http” hc.getHost() –- “www.google.com” hc.getPort() -- 80 hc.getFile() –- “search?hl=en&q=java” hc.getQuery() – “hl=en&q=java”

  7. HttpConnection API Response Codes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) Successful Request 2xx 200 OK (HTTP_OK)-- the request has succeeded Client Error 4xx 403 Forbidden (HTTP_FORBIDDEN) -- server is refusing to fulfill the request 404 Not Found (HTTP_NOT_FOUND)-- server has not found a matching URI Server Error 5xx 500 Internal Server Error (HTTP_INTERNAL_ERROR)-- unexpected error on server 503 Service Unavailable (HTTP_UNAVAILABLE)-- server currently unable to handle request due to temporary overloading or maintenance

  8. Telnet Demo

  9. HttpConnection API Reading and image through Http connection String url = “http://www.cs.gettysburg.edu/~ilinkin/logo.gif”; 1. create a connection to the url 2. obtain a data input stream from the connection 3. check the length of the content 3.1 if length > 0: read whole image at once else: read image in chunks until nothing read 4. close the connection

  10. HTTP MIDlet

  11. XMLEXtensible Markup Language Markup language similar to HTML Not a replacement for HTML Designed to represent structured data No predefined tags – you create your own Simplifies data sharing and data transport

  12. XML Example <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book>

  13. XML Example Representation of Book (http://www.w3schools.com/xml/xml_tree.asp) <book> <title>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> You decide on the tags <book>, <title>, <author>, <year>,<price> Tags must be nested properly Tags are case sensitive

  14. XML Example Tags, attributes, values <book category=“COOKING”> <title lang=“en”>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category=“COOKING”> book – the tag category – attribute “COOKING” – value for attribute category (can have multiple attributes per tag)

  15. (http://www.w3schools.com/xml/xml_tree.asp) XML Example <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>

  16. XML Parsing SAX Parser (Simple Api for XML) (http://www.saxproject.org/) SAX Parser is a “push parser” runs through entire document and triggers events on tokens Selected methods void parse(InputSource is, DefaultHandler dh) parses the input stream and notifies the handler when tokens are discovered to handle tokens must create our own Handler class that extends DefaultHandler

  17. XML Parsing DefaultHandler – process tokens discovered by parser Selected Methods // implement to handle beginning and end of document void startDocument() void endDocument() // override to handle discovery and end tags void startElement(String uri, String localName, String qName, Attributes attributes) void endElement(String uri, String localName, String qName)

  18. XML Parsing Attributes class – retrieve information about the tag’s attributes Can extract information based on attribute index or name Selected methods void getLength() – number of attributes String getQName(int index) – get the attribute’s name by index String getQValue(int index) – get attribute’s value by index String getQValue(String qName) – get attribute’s value by its name

  19. XML Parsing Using the SAX Parser HttpConnection hc = (HttpConnection) Connector.open(url); DataInputStream is = conn.openDataInputStream(); DefaultHandler dh = new MyHandler(); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser parser = spf.newSAXParser(); parser.parse(is, dh);

  20. Parsing MIDlet

  21. XML Parsing with KXML KXML – lightweight parser (can use if phone does not support JSR 172) Download and save in the lib/ folder http://kxml.sourceforge.net/

  22. XML Parsing with KXML KXML – lightweight parser (can use if phone does not support JSR 172) Download and save in the lib/ folder http://kxml.sourceforge.net/ Selected methods void getEventType() – any of START_DOCUMENT, START_TAG, END_TAG, END_DOCUMENT, TEXT, COMMENT String getName() – get the tag’s name String getText() – get the text value of a tag String getAttributeCount() – number of attributes for current tag String getAttributeName(int i) – get i-th attribute’s name String getAttributeValue(int i) – get i-th attribute’s value

  23. XML Parsing with KXML KXML – lightweight parser (can use if phone does not support JSR 172) Download and save in the lib/ folder http://kxml.sourceforge.net/ Selected methods void getEventType() – any of START_DOCUMENT, START_TAG, END_TAG, END_DOCUMENT, TEXT, COMMENT String getName() – get the tag’s name String getText() – get the text value of a tag String getAttributeCount() – number of attributes for current tag String getAttributeName(int i) – get i-th attribute’s name String getAttributeValue(int i) – get i-th attribute’s value

  24. XML Parsing with KXML InputStream is = hc.openInputStream(); Reader reader = new InputStreamReader(is); KXmlParser parser = new KXmlParser(); parser.setInput(reader); parser.next() while(parser.getEventType() != KXmlParser.END_DOCUMENT) { if (parser.getEventType() == KXmlParser.START_TAG) { } else if (parser.getEventType() == KXmlParser.END_TAG) { } else if (parser.getEventType() == KXmlParser.TEXT) { } parser.next }

More Related