xdmp:http-put( $uri as xs:string, [$options as (element()|map:map)?], [$data as node()?] ) as item()+
Sends an HTTP PUT request to an HTTP server. The HTTP server should return a response, which will differ depending on the action the HTTP server takes for the PUT.
Parameters | |
---|---|
uri | The URI to which the data is to be put. |
options |
Options with which to customize this operation.
You can specify options as either an XML element
in the "xdmp:http" namespace, or as a map:map . The
options names below are XML element localnames. When using a map,
replace the hyphens with camel casing. For example, "an-option"
becomes "anOption" when used as a map:map key.
This function supports the following options, plus the options from the
xdmp:http-get
function.
The other options are the same as the other
|
data |
Data to put in the request body. This is an alternative to the
data option for the second parameter that allows binary
content to be specified for the body of the PUT.
|
http://marklogic.com/xdmp/privileges/xdmp-http-put
The http functions only operate on URIs that use the http or https
schemes; specifying a URI that does not begin with http://
or https://
throws an exception.
If an http function times out, it throws a socket received exception (SVC-SOCRECV).
If you expect the request body from this http function to be processed by another application (via a web service, for example), you should specify a content-type header. If no content-type header is specified, the content type defaults to text/plain.
(: Send a PUT request to insert a document into the database : using the MarkLogic REST Client API /documents endpoint. The : PUT body contains serialized XML that becomes the content of : the new document. The data for the PUT body is passed as : serialized XML in the options parameter. :) xdmp:http-put("http://example.com:8000/v1/documents?uri=my.xml" <options xmlns="xdmp:http"> <authentication method="digest"> <username>myname</username> <password>mypassword</password> </authentication> <headers> <Content-type>application/xml</Content-type> <Accept>application/xml</Accept> </headers> <data>{ xdmp:quote(<mydata>this is my content</mydata>) }</data> </options>) (: MarkLogic returns the response from the HTTP server. In this case, : a response similar to the following: : : <response xmlns="xdmp:http"> : <code>204</code> : <message>Content Updated</message> : <headers> : <server>MarkLogic</server> : <content-length>0</content-length> : <connection>Keep-Alive</connection> : <keep-alive>timeout=5</keep-alive> : </headers> : </response> :)
(: Send a PUT request to insert a document into the database : using the MarkLogic REST Client API /documents endpoint. The : PUT body contains serialized XML that becomes the content of : the new document. The data for the PUT body is passed as : an XML node in the 3rd parameter. :) xdmp:http-put("http://example.com:8000/v1/documents?uri=my.xml" <options xmlns="xdmp:http"> <authentication method="digest"> <username>myname</username> <password>mypassword</password> </authentication> <headers> <Content-type>application/xml</Content-type> <Accept>application/xml</Accept> </headers> </options>, <mydata>this is xml for the PUT body</mydata>) (: MarkLogic returns the response from the HTTP server. In this case, : a response similar to the following: : : <response xmlns="xdmp:http"> : <code>204</code> : <message>Content Updated</message> : <headers> : <server>MarkLogic</server> : <content-length>0</content-length> : <connection>Keep-Alive</connection> : <keep-alive>timeout=5</keep-alive> : </headers> : </response> :)
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.