You are on page 1of 27

Connecting to Web Services

Sean Sullivan Android Dev Camp Amsterdam 8 January 2009

HTTP XML JSON OAuth

HTTP request

XML response

http://code.google.com/p/jreeagle

jreeagle uses:

HttpClient API XStream OAuth Java library

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications

use OAuth to access protected data your application needs to obtain an access
token from the service provider after the user grants permission

service provider will issue access token

http://code.google.com/p/oauth

+ jreeagle
http://code.google.com/p/jreeagle/wiki/Android

jpoco
http://code.google.com/p/jpoco/wiki/Android

+ HTTP
Option 1

java.net.URL java.net.HttpURLConnection
Option 2

HttpClient 4.0 API

HttpClient 4.0 API


org.apache.http.client.HttpClient org.apache.http.impl.client.DefaultHttpClient

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

HttpClient 4.0 API



org.apache.http.HttpResponse org.apache.http.StatusLine org.apache.http.HttpEntity org.apache.http.utils.EntityUtils

HttpClient programming
HTTP response status code I/O exceptions timeouts gzip?

HttpClient programming
synchronous invocation
public HttpResponse execute(HttpUriRequest request)

asynchronous invocation
public HttpResponse execute(HttpUriRequest request, ResponseHandler handler)

Android UI thread
user clicks on button onClick listener Dont block the UI thread! Tip: use java.lang.Runnable

Response formats
XML JSON RSS, Atom other

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

JSON processing
org.json package Google GSON library XStream + Jettison json-lib
* * *

* does not work on Android 1.0

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

Conclusion
HttpClient API use XStream for XML processing use org.json package for JSON processing OAuth has a learning curve OAuth affects user experience

Thank you

Resources

http://code.google.com/android/documentation.html http://hc.apache.org/httpcomponents-client http://code.google.com/p/oauth http://xstream.codehaus.org

You might also like