Zend_Http_Client.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <sect1 id="zend.http.client">
  2. <title>Zend_Http_Client</title>
  3. <sect2 id="zend.http.client.introduction">
  4. <title>Inleiding</title>
  5. <para>
  6. <code>Zend_Http_Client</code> verstrekt een eenvoudige interface om HTTP verzoeken te maken.
  7. <code>Zend_Http_Client</code> kan GET, POST, PUT en DELETE verzoeken maken.
  8. </para>
  9. <note>
  10. <para>
  11. <code>Zend_HttpClient</code> volgt standaard tot 5 HTTP verwijzingen. Om dit gedrag te veranderen
  12. geef je het maximum toegestane verwijzingen aan de <code>get()</code> methode op.
  13. </para>
  14. </note>
  15. <para>
  16. <example>
  17. <title>Een basis GET verzoek maken</title>
  18. <programlisting role="php"><![CDATA[<?php
  19. require_once 'Zend/Http/Client.php';
  20. try {
  21. $http = new Zend_Http_Client('http://example.org');
  22. $response = $http->get();
  23. if ($response->isSuccessful()) {
  24. echo $response->getBody();
  25. } else {
  26. echo '<p>Er trad een fout op</p>';
  27. }
  28. } catch (Zend_Http_Client_Exception $e) {
  29. echo '<p>Er trad een fout op (' .$e->getMessage(). ')</p>';
  30. }
  31. ?>]]></programlisting>
  32. </example>
  33. </para>
  34. </sect2>
  35. <sect2 id="zend.http.client.basic-get-requests">
  36. <title>Basis GET verzoeken met gespecificeerde HTTP Headers</title>
  37. <para>
  38. De <code>Zend_Http_Client</code> constructor maakt een <code>Zend_Http_Client</code> instantie om
  39. HTTP verzoeken te zenden.
  40. </para>
  41. <para>
  42. Als je <code>Zend_Http_Client</code> gebruikt op één enkele URL kan je in de meeste gevallen de URL
  43. en relevante headers aan de <emphasis>constructor</emphasis> geven, zoals in de volgende voorbeelden:
  44. </para>
  45. <example>
  46. <title>Een Basis Zend_Http_Client maken</title>
  47. <programlisting role="php"><![CDATA[<?php
  48. require_once 'Zend/Http/Client.php';
  49. // Specificeer de URL en een enkele header
  50. $http = new Zend_Http_Client('http://example.org', 'Accept: text/html');
  51. ?>]]> </programlisting>
  52. </example>
  53. <para />
  54. <example>
  55. <title>Meerdere Headers sturen</title>
  56. <programlisting role="php"><![CDATA[<?php
  57. require_once 'Zend/Http/Client.php';
  58. // Specificeer de URL en meerdere headers
  59. $http = new Zend_Http_Client('http://example.org',
  60. array('Accept: text/html', 'Accept-Language: en-us,en;q=0.5'));
  61. ?>]]> </programlisting>
  62. </example>
  63. <para>
  64. Als je <code>Zend_Http_Client</code> wenst te gebruiken om verzoeken aan <emphasis>meerdere</emphasis> URLs te
  65. sturen, zie dan <xref linkend="zend.http.client.requesting-multiple-domains" />
  66. </para>
  67. </sect2>
  68. <sect2 id="zend.http.client.requesting-multiple-domains">
  69. <title>Multidomein verzoeken</title>
  70. <para>
  71. <code>Zend_Http_Client</code> ondersteunt het sturen van verzoeken aan meerdere domeinen
  72. door het zetten van de URL via de methode <code>Zend_Http_Client::setUri()</code>.
  73. </para>
  74. <note>
  75. <para>Een geweldig gebruik hiervoor is als je meerdere RSS feeds uitleest.</para>
  76. </note>
  77. <example>
  78. <title>Multidomein verzoek</title>
  79. <programlisting role="php"><![CDATA[<?php
  80. require_once 'Zend/Http/Client.php';
  81. // Het client object instantiëren
  82. $http = new Zend_Http_Client();
  83. // De URI naar Slashdot's hoofd feed zetten
  84. $http->setUri('http://rss.slashdot.org/Slashdot/slashdot');
  85. // De feed opvragen
  86. $slashdot = $http->get();
  87. // Nu de BBC news feed instellen
  88. $http->setUri('http://newsrss.bbc.co.uk/rss/newsonline_world_edition/technology/rss.xml');
  89. // de feed opvragen
  90. $bbc = $http->get();
  91. ?>]]> </programlisting>
  92. </example>
  93. </sect2>
  94. <sect2 id="zend.http.client.settimeout">
  95. <title>De HTTP Timeout wijzigen</title>
  96. <para>
  97. <code>Zend_Http_Client::setTimeout()</code> laat je toe de timeout voor de HTTP verbinding
  98. te zetten, in seconden.
  99. </para>
  100. <note>
  101. <para>De standaard timeout is 10 seconden.</para>
  102. </note>
  103. </sect2>
  104. <sect2 id="zend.http.client.setheaders">
  105. <title>Dynamisch HTTP Headers zetten</title>
  106. <para>
  107. Je kan een <emphasis>array</emphasis> headers zetten met <code>Zend_Http_Client::setHeaders()</code>.
  108. </para>
  109. <important>
  110. <para>
  111. Headers moeten het formaat volgen:
  112. <option><code>Header: waarde</code></option>
  113. </para>
  114. </important>
  115. </sect2>
  116. <sect2 id="zend.http.client.making-other-requests">
  117. <title>POST, PUT en DELETE HTTP verzoeken maken</title>
  118. <para>
  119. Het maken van POST, PUT en DELETE HTTP verzoeken wordt vereenvoudigd in <code>Zend_Http_Client</code>
  120. door middel van drie methodes: <code>post()</code>, <code>put()</code>, en <code>delete()</code>,
  121. respectievelijk. De <code>post()</code> en <code>put()</code> methodes aanvaarden elk één string
  122. parameter, <code>$data</code>, waarin een string met de data correct ge-encodeerd zoals volgt:
  123. <emphasis><code>name=value&amp;foo=bar</code></emphasis>. De <code>delete()</code> methode heeft
  124. geen parameters.
  125. </para>
  126. <example>
  127. <title>POST data verzenden met Zend_Http_Client</title>
  128. <programlisting role="php"><![CDATA[<?php
  129. require_once 'Zend/Http/Client.php';
  130. // Het client object instantiëren
  131. $http = new Zend_Http_Client();
  132. // De URI naar een POST dataverwerker zetten
  133. $http->setUri('http://example.org/post/processor');
  134. // De specifieke GET variabelen als HTTP POST data opslaan
  135. $postData = 'foo=' . urlencode($_GET['foo']) . '&bar=' . urlencode($_GET['bar']);
  136. // Het HTTP POST verzoek maken en het HTTP antwoord opslaan
  137. $httpResponse = $http->post($postData);
  138. ?>]]> </programlisting>
  139. <para>
  140. Een PUT verzoek maken is hetzelfde als in het voorgaande voorbeeld om een POST verzoek te maken;
  141. je hoeft slechts de <code>put()</code> methode gebruiken in plaats van de <code>post()</code> methode.
  142. </para>
  143. </example>
  144. </sect2>
  145. </sect1>
  146. <!--
  147. vim:se ts=4 sw=4 et:
  148. -->