Connecting to Web Services on Android
Preview:
DESCRIPTION
Connecting to Web Services on Android Android Dev Camp Amsterdam January 2009
Citation preview
- 1. Connecting to Web Services Sean Sullivan Android Dev Camp
Amsterdam 8 January 2009
- 2. +
- 3. HTTP XML JSON OAuth
- 4. HTTP request XML response
- 5. http://code.google.com/p/jreeagle
- 6. jreeagle uses: HttpClient API XStream OAuth Java
library
- 7. An open protocol to allow secure API authorization in a
simple and standard method from desktop and web applications
- 8. use OAuth to access protected data your application needs to
obtain an access token from the service provider service provider
will issue access token after the user grants permission
- 9. + http://code.google.com/p/oauth
- 10. + jreeagle http://code.google.com/p/jreeagle/wiki/Android
jpoco http://code.google.com/p/jpoco/wiki/Android
- 11. + HTTP Option 1 java.net.URL java.net.HttpURLConnection
Option 2 HttpClient 4.0 API
- 12. HttpClient 4.0 API org.apache.http.client.HttpClient
org.apache.http.impl.client.DefaultHttpClient
- 13. HttpClient 4.0 API org.apache.http.client.methods.HttpGet
org.apache.http.client.methods.HttpPost
org.apache.http.client.methods.HttpPut
org.apache.http.client.methods.HttpDelete
- 14. HttpClient 4.0 API org.apache.http.HttpResponse
org.apache.http.StatusLine org.apache.http.HttpEntity
org.apache.http.utils.EntityUtils
- 15. HttpClient programming HTTP response status code I/O
exceptions timeouts gzip?
- 16. HttpClient programming synchronous invocation public
HttpResponse execute(HttpUriRequest request) asynchronous
invocation public HttpResponse execute(HttpUriRequest request,
ResponseHandler handler)
- 17. Android UI thread user clicks on button onClick listener
Dont block the UI thread! Tip: use java.lang.Runnable
- 18. Response formats XML JSON RSS, Atom other
- 19. XML processing org.w3c.dom package (DOM) org.xml.sax
package (SAX) org.xmlpull package (XPP3) XStream JDOM Apache
XmlBeans * * does not work on Android 1.0
- 20. JSON processing org.json package Google GSON library *
XStream + Jettison * json-lib * * does not work on Android 1.0
- 21. Client libraries code.google.com/p/jreeagle
code.google.com/p/jpoco code.google.com/p/meetup-java-client
code.google.com/p/upcoming-java-client
code.google.com/p/gdata-java-client ickrj.sourceforge.net
- 22. Conclusion HttpClient API use XStream for XML processing
use org.json package for JSON processing OAuth has a learning curve
OAuth affects user experience
- 23. Thank you
- 24. Resources http://code.google.com/android/documentation.html
http://hc.apache.org/httpcomponents-client
http://code.google.com/p/oauth http://xstream.codehaus.org