Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

Connecting to Web Services on Android

  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/jfireeagle
  6. jfireeagle 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. + jfireeagle http://code.google.com/p/jfireeagle/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 • Don’t 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/jfireeagle • 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 • flickrj.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
Advertisement