Connecting to Web Services on Android
Post on 18-Nov-2014
645 Views
Preview:
DESCRIPTION
Transcript
Connecting to Web Services
Sean SullivanAndroid Dev Camp Amsterdam
8 January 2009
+
• HTTP
• XML
• JSON
• OAuth
XML response
HTTP request
http://code.google.com/p/jfireeagle
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
Resources
• http://code.google.com/android/documentation.html
• http://hc.apache.org/httpcomponents-client
• http://code.google.com/p/oauth
• http://xstream.codehaus.org
top related