Changes

Jump to navigation Jump to search
361 bytes added ,  19:58, 16 February 2018
no edit summary
This [[Module Library|XQuery Module]] contains a single function to send HTTP requests and handle HTTP responses. The function {{Code|send-request}} is based on the [http://expath.org/spec/http-client EXPath HTTP Client Module]. It gives full control over the available request and response parameters. For simple GET requests, the [[Fetch Module]] may be sufficient.
 
With {{Version|9.0}}, if <code><http:header name="Accept-Encoding" value="gzip"/></code> is specified and if the addressed web server provides support for the {{Code|gzip}} compression algorithm, the response will automatically be decompressed.
=Conventions=
All functions in this module are assigned to the {{Code|<code><nowiki>http://expath.org/ns/http-client}} </nowiki></code> namespace, which is statically bound to the {{Code|http}} prefix.<br/>All errors are assigned to the {{Code|<code><nowiki>http://expath.org/ns/error}} </nowiki></code> namespace, which is statically bound to the {{Code|exerr}} prefix.
=Functions=
|}
==Examples==
===Status Only===
Simple GET request. As the attribute {{Code|status-only}} is set to true, only the response element is returned.
</http:response></pre>
===Google Homepage=== Retrieve the Google search home pagewith a timeout of 10 seconds. In order to [[http://home.ccil.org/~cowan/XML/tagsoup/ Parsers#HTML_Parser|parse HTML]], TagSoup] must be contained in the class path in order to parse html.
'''Query:'''
<pre class="brush:xquery">http:send-request(<http:request method='get' href='http://www.google.com' timeout='10'/>)</pre>
'''Result:'''
<pre class="brush:xml">
let $binary := http:send-request(
<http:request method='get'
override-media-type='application/octet-stream'
href='http://www.google.com'>
<http:header name="User-Agent" value="Opera"/>
===SVG Data===
 
Content-type ending with +xml, e.g. image/svg+xml.
</svg></pre>
===POST Request=== 
POST request to the BaseX REST Service, specifying a username and password.
method='post' username='admin' password='admin' send-authorization='true'>
<http:body media-type='application/xml'>
<query xmlns="http://basex.org/rest"> <text><![CDATA[ <html>{ for $i in 1 to 3 return <div>Section {$i }</div> }</html> ]]></text> </query>
</http:body>
</http:request>
=Changelog=
 
;Version 9.0
* Updated: support for gzipped content encoding
;Version 8.0
* Updated: [[#http:send-request|http:send-request]]: {{Code|HC0002}} is raised if the input cannot be parsed or converted to the final data type.
* Updated: errors are using {{Code|text/plain}} as media-type.
 
[[Category:XQuery]]
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu