| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <head> |
| <title>Apache Wink : 6.1 Getting Started with Apache Wink Client</title> |
| <link rel="stylesheet" href="styles/site.css" type="text/css" /> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| </head> |
| |
| <body> |
| <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff"> |
| <tr> |
| <td valign="top" class="pagebody"> |
| <div class="pageheader"> |
| <span class="pagetitle"> |
| Apache Wink : 6.1 Getting Started with Apache Wink Client |
| </span> |
| </div> |
| <div class="pagesubheading"> |
| This page last changed on Oct 13, 2009 by <font color="#0050B2">michael</font>. |
| </div> |
| |
| <h2><a name="6.1GettingStartedwithApacheWinkClient-GettingStartedwiththeApacheWinkClient"></a>Getting Started with the Apache Wink Client</h2> |
| |
| <p>The following section details the getting started examples that demonstrate how to write a simple client that consume RESTful Web Services with the Apache Wink Client.</p> |
| |
| <h3><a name="6.1GettingStartedwithApacheWinkClient-GETRequest"></a>GET Request</h3> |
| |
| <p>The following example demonstrates how to issue an Http GET request.</p> |
| |
| |
| <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent"> |
| <pre class="code-xml">// create the rest client instance |
| 1 RestClient client = new RestClient(); |
| |
| // create the resource instance to interact with |
| 2 Resource resource = client.resource(<span class="code-quote">"http://services.com/HelloWorld"</span>); |
| // perform a GET on the resource. The resource will be returned as plain text |
| 3 String response = resource.accept(<span class="code-quote">"text/plain"</span>).get(String.class); |
| </pre> |
| </div></div> |
| |
| <h4><a name="6.1GettingStartedwithApacheWinkClient-Explanation"></a>Explanation</h4> |
| |
| <p>The RestClient is the entry point for building a RESTful Web Service client. In order to start working with the Wink Client, a new instance of RestClient needs to be created, as the example shows in line 1 of the example. A new Resource is then created with the given URI, by calling the RestClient#resource() method as appears in line 2.</p> |
| |
| <p>Finally, the Resource#get() method is invoked in order to issue an Http GET request as appears in line 3.<br/> |
| Once the Http response is returned, the client invokes the relevant provider to desterilizes the response in line 3.</p> |
| |
| <h3><a name="6.1GettingStartedwithApacheWinkClient-POSTRequest"></a>POST Request</h3> |
| |
| <p>The following example demonstrates how to issue an Http POST request.</p> |
| |
| |
| <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent"> |
| <pre class="code-xml">// create the rest client instance |
| 1 RestClient client = new RestClient(); |
| |
| // create the resource instance to interact with |
| 2 Resource resource = client.resource(<span class="code-quote">"http://services.co"</span>); |
| |
| // issue the request |
| 3 String response = resource.contentType(<span class="code-quote">"text/plain"</span>).accept(<span class="code-quote">"text/plain"</span>).post(String.class, <span class="code-quote">"foo"</span>); |
| </pre> |
| </div></div> |
| |
| <h4><a name="6.1GettingStartedwithApacheWinkClient-Explanation"></a>Explanation</h4> |
| |
| <p>The POST Request example demonstrates how to issue a simple Http POST request that sends and receives resources as strings.</p> |
| |
| <p>First, a new instance of a Resource is created through the RestClient. The Http POST request is then issued by specifying the request and response media types and the response entity type (String.class).</p> |
| |
| <h3><a name="6.1GettingStartedwithApacheWinkClient-POSTAtomRequest"></a>POST Atom Request</h3> |
| |
| <p>The following example demonstrates how to issue an Http POST request that sends and receives atom entries.</p> |
| |
| |
| <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent"> |
| <pre class="code-xml">// create the rest client instance |
| 1 RestClient client = new RestClient(); |
| |
| // create the resource instance to interact with |
| 2 Resource resource = client.resource(<span class="code-quote">"http://services.co"</span>); |
| |
| 3 AtomEntry request = getAtomEntry(); |
| |
| // issue the request |
| 4 AtomEntry response = resource.contentType(<span class="code-quote">"application/atom+xml"</span>).accept(<span class="code-quote">"application/atom+xml"</span>).post(AtomEntry.class, request); |
| </pre> |
| </div></div> |
| |
| <h4><a name="6.1GettingStartedwithApacheWinkClient-Explanation"></a>Explanation</h4> |
| |
| <p>The Apache Wink Client provides an object model for Atom (atom feed and atom entry), and supplies out-of-the-box providers that enable sending and receiving atom feeds and entries.</p> |
| |
| <h3><a name="6.1GettingStartedwithApacheWinkClient-UsingClientResponse"></a>Using ClientResponse</h3> |
| |
| <p>The following example demonstrates how to use the ClientResponse object in order to de-serialize the response entity.</p> |
| |
| |
| |
| <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent"> |
| <pre class="code-xml">// create the rest client instance |
| 1 RestClient client = new RestClient(); |
| |
| // create the resource instance to interact with |
| 2 Resource resource = client.resource(<span class="code-quote">"http://services.co"</span>); |
| |
| // issue the request |
| 3 ClientResponse response = resource.accept(<span class="code-quote">"text/plain"</span>).get(); |
| |
| // deserialize response |
| 4 String responseAsString = response.getEntity(String.class); |
| </pre> |
| </div></div> |
| |
| <h4><a name="6.1GettingStartedwithApacheWinkClient-Explanation"></a>Explanation</h4> |
| |
| <p>If the response entity type is not provided when invoking the Resource#get() method that appears in line 3, the response will be returned as the raw ClientResponse. In order to trigger the response deserialization mechanism, the ClientResponse#getEntity() method needs to be invoked as it appears in line 4 with the required response entity type.</p> |
| |
| |
| </td> |
| </tr> |
| </table> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr> |
| <td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td> |
| </tr> |
| <tr> |
| <td align="center"><font color="grey">Document generated by Confluence on Nov 11, 2009 06:57</font></td> |
| </tr> |
| </table> |
| </body> |
| </html> |