Connecting to Web Services            Sean Sullivan    Android Dev Camp Amsterdam           8 January 2009
+
•   HTTP•   XML•   JSON•   OAuth
HTTP requestXML response
http://code.google.com/p/jfireeagle
jfireeagle uses:     • HttpClient API     • XStream     • OAuth Java library
“An open protocol to allow secure APIauthorization in a simple and standard methodfrom desktop and web applications”
• use OAuth to access protected data• your application needs to obtain an access  token from the service provider• service...
+http://code.google.com/p/oauth
+jfireeagle   http://code.google.com/p/jfireeagle/wiki/Androidjpoco    http://code.google.com/p/jpoco/wiki/Android
+ HTTPOption 1  • java.net.URL  • java.net.HttpURLConnectionOption 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.clien...
HttpClient 4.0 API•   org.apache.http.HttpResponse•   org.apache.http.StatusLine•   org.apache.http.HttpEntity•   org.apac...
HttpClient programming• HTTP response status code• I/O exceptions• timeouts• gzip?
HttpClient programmingsynchronous invocation  public HttpResponse execute(HttpUriRequest request)asynchronous invocation  ...
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 Xm...
JSON processing• org.json package• Google GSON library   *• XStream + Jettison                   *• json-lib        *     ...
Client libraries• code.google.com/p/jfireeagle• code.google.com/p/jpoco• code.google.com/p/meetup-java-client• code.google....
Conclusion• HttpClient API• use XStream for XML processing• use org.json package for JSON processing• OAuth has a learning...
Thank you
Resources•   http://code.google.com/android/documentation.html•   http://hc.apache.org/httpcomponents-client•   http://cod...
Connecting to-web-services-on-android-4577
Connecting to-web-services-on-android-4577
Connecting to-web-services-on-android-4577
Upcoming SlideShare
Loading in …5
×

Connecting to-web-services-on-android-4577

1,608 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,608
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
37
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Connecting to-web-services-on-android-4577

  1. 1. Connecting to Web Services Sean Sullivan Android Dev Camp Amsterdam 8 January 2009
  2. 2. +
  3. 3. • HTTP• XML• JSON• OAuth
  4. 4. HTTP requestXML response
  5. 5. http://code.google.com/p/jfireeagle
  6. 6. jfireeagle uses: • HttpClient API • XStream • OAuth Java library
  7. 7. “An open protocol to allow secure APIauthorization in a simple and standard methodfrom desktop and web applications”
  8. 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. 9. +http://code.google.com/p/oauth
  10. 10. +jfireeagle http://code.google.com/p/jfireeagle/wiki/Androidjpoco http://code.google.com/p/jpoco/wiki/Android
  11. 11. + HTTPOption 1 • java.net.URL • java.net.HttpURLConnectionOption 2 • HttpClient 4.0 API
  12. 12. HttpClient 4.0 API• org.apache.http.client.HttpClient• org.apache.http.impl.client.DefaultHttpClient
  13. 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. 14. HttpClient 4.0 API• org.apache.http.HttpResponse• org.apache.http.StatusLine• org.apache.http.HttpEntity• org.apache.http.utils.EntityUtils
  15. 15. HttpClient programming• HTTP response status code• I/O exceptions• timeouts• gzip?
  16. 16. HttpClient programmingsynchronous invocation public HttpResponse execute(HttpUriRequest request)asynchronous invocation public HttpResponse execute(HttpUriRequest request, ResponseHandler handler)
  17. 17. Android UI thread• user clicks on button• onClick listener• Don’t block the UI thread!• Tip: use java.lang.Runnable
  18. 18. Response formats• XML• JSON• RSS, Atom• other
  19. 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. 20. JSON processing• org.json package• Google GSON library *• XStream + Jettison *• json-lib * * does not work on Android 1.0
  21. 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. 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. 23. Thank you
  24. 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

×