1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" /> 7<title>Read</title> 8 </head> 9 <body> 10<h1><CODE>nn::http::Connection::Read</CODE> Member Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14<a href="../../../nn/Result/Overview.html">nn::Result</a> Read( 15 u8 * pBodyBuf, 16 size_t bufLen 17); 18</pre> 19 </div> 20<h2>Arguments</h2> 21 <div class="section"> 22 <table class="arguments"> 23 <thead> 24 <tr> 25 <td width="15" /> 26<th>Name</th> 27<td>Description</td> 28 </tr> 29 </thead> 30 <tr> 31<td>out</td> 32<th>pBodyBuf</th> 33<td>Buffer storing the HTTP response message body.</td> 34 </tr> 35 <tr> 36<td>in</td> 37<th>bufLen</th> 38<td>Size of <SPAN class="argument">pBodyBuf</SPAN>.</td> 39 </tr> </table> 40 </div> 41<h2>Return Values</h2> 42<div class="section">Returns the result of the operation.<br /> </div> 43<h2>Description</h2> 44 <div class="section"> 45<p>Reads an HTTP response.</p><p>The data of the message body is stored in the buffer specified in the arguments.<br />If the message body is larger than the buffer, the buffer stores as much of the message body as will fit in it, and an error (with <CODE>Description==ER_RES_BODYBUF_SHORTAGE</CODE>) is returned.<br />If you run the <a href="../../../nn/http/Connection/Read.html"><CODE>Read</CODE></a> function again later, the library continues reading where it left off from the previous call to <a href="../../../nn/http/Connection/Read.html"><CODE>Read</CODE></a>.<br />Once all of the message body data is received, a <CODE>Result</CODE> of <CODE>Success</CODE> is returned.<br /><br />The library maintains the following data corresponding to the message body stored in the user-specified buffer. Get these data items using the corresponding functions.<br />・ Response status (<CODE><a href="../../../nn/http/Connection/GetStatusCode.html">GetStatusCode</a></CODE>)<br />・ Message header (<CODE><a href="../../../nn/http/Connection/GetHeaderField.html">GetHeaderField</a></CODE>/<CODE><a href="../../../nn/http/Connection/GetHeaderAll.html">GetHeaderAll</a></CODE>)<br /><br /><B>Note:</B> If these functions are used before <a href="../../../nn/http/Connection/Read.html"><CODE>Read</CODE></a> is run, they block until the header is completely received. <br /><B>Note:</B>If <a href="../../../nn/http/Connection/Read.html"><CODE>Read</CODE></a> completes successfully, the entire header has been received and these functions return immediately.</a><br /><B>Note:</B> If <CODE><a href="../../../nn/http/Connection/Read.html">Read</a></CODE> returns an error, receiving the HTTP response failed. <br />The <CODE><a href="../../../nn/http/Connection/Read.html">Read</a></CODE> return value even indicates success, therefore, if the receive operation succeeded and a message indicates a communication error (authentication failure or similar). <br />Use the status code obtained from the <CODE><a href="../../../nn/http/Connection/GetStatusCode.html">GetStatusCode</a></CODE> function to check for these other kinds of errors.<br /> <B>Note:</B> Unlike <CODE><a href="../../../nn/http/Connection/Read.html">Read</a></CODE>, this function does not have an attached timeout. In other words, the process will not return from this function until processing has ended.<br />For this reason, in environments where communications are slow you can expect a long time to pass before the process ends (an HTTP response has been received, or the buffer is full) and returns from this function.<br /></p><!-- write here --></div> 46<h2>Revision History</h2> 47 <div class="section"> 48 <dl class="history"> 49 <dt>2010/06/14</dt> 50<dd>Initial version.<br /> 51 </dd> 52 </dl> 53 </div> 54 <hr><p>CONFIDENTIAL</p></body> 55</html>