I found an API for which I want to play as I am free. I want to ask if I want to develop Android app using the API and the API is HTTP protocol based (RESTful), how can I use the HTTPClient object to do so?
I have a general request info.
HEAD /authenticate/ HTTP/1.1
Host: my.api.com
Date: Thu, 17 Jul 2008 14:52:54 GMT
X-SE-Client: some-value
X-SE-Accept: xml
X-SE-Auth: 90a6d325e982f764f86a7e248edf6a660d4ee833
The response of the above would be if success.
HTTP/1.1 200 OK
Date: Thu, 17 Jul 2008 14:52:55 GMT
Server: MyApi
Content-Length: 795
Connection: close
Content-Type: text/xml
I know how to use HTTPClient to send HTTP requests but does it add extra headers and other unnecessary stuff to the request? How can I see the request made by HTTPClient object? I want to simply request passing text like in telnet.
REST is much more strict about the formats you use vs. older SOAP methods.
If you want to pass a single string or something like that, I suggest using JSON within REST. REST with XML is used for more complex structures like nested XML payloads and that sort of thing. JSON will also likely be much faster. There is built in support for JSON in Android, as well.
You should be able to use HttpClient in Android to do what you need. I just finished the first part of an integration of Android with an ASP.NET MVC 3 site and I must say - it was quite painless. I use Json as my data exchange format.
You can view exactly what the header looks like by setting a debug point after building your request. Here is some sample code (please remember it is just sample code - not a full implementation).
This class is called by a separate thread than the UI thread:
Use this class to build your request and execute it:
EDIT:
Oh ya and the HttpClientFactory: