1. Using the Apache HttpClient
The Apache HttpClient library simplifies handling HTTP requests. To use this library download the binaries with dependencies from http://hc.apache.org/ and add then to your project class path.You retrieve and send data via the
HttpClient
class. An
instance of this class can be created with
new DefaultHttpClient();
DefaultHttpClient
is the standard HttpClient and uses the
SingleClientConnManager
class to handle HTTP connections.
SingleClientConnManager
is not thread-safe, this means that access to it via several threads
will create problems.
The HttpClient uses a
HttpUriRequest
to send and receive data.
Important subclass of
HttpUriRequest
are
HttpGet
and
HttpPost
.
You can get the
response of
the HttpClient as
an
InputStream.2. Examples
The following examples do not necessary work out of the box as
we do not
provide the required backend for receiving the data. Think
of the
following as examples how to setup HttpClients. Download
the
HttpClient libraries from the Apache Website, you can download the
"bin" package it
includes all dependencies.
Create a new Java project , and add them to the path of your Java project. We use the project for creating our tests.
Create a new Java project , and add them to the path of your Java project. We use the project for creating our tests.
HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://www.javaguide.com"); HttpResponse response = client.execute(request); // Get the response BufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { textView.append(line); }
2.3. Http Post
The following will send a post request to the URL "http://javaguide.blog.com/register" and include a parameter "registrationid" which an random value.import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class SimpleHttpPut { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://javaguide.blog.com/register"); try { ListThe following request adds several parameters to the post request.nameValuePairs = new ArrayList (1); nameValuePairs.add(new BasicNameValuePair("registrationid", "123456789")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class TestHttpClient { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin"); try { ListnameValuePairs = new ArrayList (1); nameValuePairs.add(new BasicNameValuePair("Email", "youremail")); nameValuePairs .add(new BasicNameValuePair("Passwd", "yourpassword")); nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE")); nameValuePairs.add(new BasicNameValuePair("source", "Google-cURL-Example")); nameValuePairs.add(new BasicNameValuePair("service", "ac2dm")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); if (line.startsWith("Auth=")) { String key = line.substring(5); // Do something with the key } } } catch (IOException e) { e.printStackTrace(); } } }
0 comments:
Post a Comment