Connecting to Web Services on Android

Post on 18-Nov-2014

645 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

This document gives you the needed resources to do webservice on Android

Transcript

Connecting to Web Services

Sean SullivanAndroid Dev Camp Amsterdam

8 January 2009

+

• HTTP

• XML

• JSON

• OAuth

XML response

HTTP request

jfireeagle 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

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

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)

Android UI thread

• 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 (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/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

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

top related