Web Services and Android - OSSPAC 2009

Post on 11-Nov-2014

8.243 views 2 download

Tags:

description

Web Services and Android OSSPAC February 18 2009 Singapore

Transcript of Web Services and Android - OSSPAC 2009

Web Services and Android

Sean SullivanOSSPAC

18 February 2009

• HTTP

• OAuth

• XML

• JSON

+

XML response

HTTP request

• HttpClient API

• XStream

• OAuth Java library

jfireeagle project

“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

• service provider will issue access token after the user grants permission

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

+

jfireeagle

http://code.google.com/p/jfireeagle/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)

UI programming

• user clicks on button

• onClick listener

• Don’t 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 (XPP)

• XStream

• JDOM

• Apache XmlBeans ** does not work on Android 1.0 or 1.1

JSON processing

• org.json package

• Google GSON library *

• XStream + Jettison *

• json-lib *

* does not work on Android 1.0 or 1.1

RSS and Atom

• Rome library *

• Apache Abdera library *

* does not work on Android 1.0 or 1.1

Client libraries

code.google.com/p/jfireeagle

code.google.com/p/jpoco

code.google.com/p/meetup-java-client

Client libraries

code.google.com/p/upcoming-java-client

flickrj.sourceforge.net

code.google.com/p/gdata-java-client

Conclusion

• HttpClient API

• use XStream for XML processing

• use org.json package for JSON processing

• OAuth has a learning curve

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