Re: Fwd: Errors deploying collection

Nick Sincaglia <[email protected]>
Newsgroups gmane.text.xml.exist
Organization NueMeta, LLC
Message-ID <[email protected]>
Hayim,
     We use the Expath http-client a lot. Based on the small amount of 
code that you have pasted below, I can share some code snippets that we 
might use to do something similar. The below code has been pulled from 
various files and has not been tested but my hope is that it is close 
enough to help you identify how to use the http-client library to get 
the results you are looking for.

import module namespace http = "http://expath.org/ns/http-client";
import module namespace jx = "http://joewiz.org/ns/xquery/json-xml" at 
"../../../core/json-xml/modules/json-xml.xqm";
let $constructed-url := "http://52.12.26.11:8080/collatex/collate"
let $headers := <http:header name="Content-Type" value="application/json"/>
     (:
         NOTE: headers should be formatted the following way (they do 
not use a parent tag)
<http:header>...</http:header>
<http:header>...</http:header>
     :)

     let $get-request :=
         <http:request href="{$constructed-url}" method="GET">
             <http:header name="Connection" value= "close"/>
             {$headers}
         </http:request>

     let $response := http:send-request($get-request)
     let $response-body-decoded := util:base64-decode($response[2])
     let $parse-response-body := 
jx:json-to-xml(xs:string($response-body-decoded))
     return
         $parse-response-body

Does this help? If you have more questions, let me know. I am happy to help.

Nick

On 10/11/22 11:52 AM, Hayim Lapin wrote:
> Dear list,
> This is technically an expath problem rather than an eXist problem, 
> but I was hoping that the accumulated knowledge on the list might 
> provide a quick fix and that this is not list abuse.
>
> I am upgrading an app from eXist version 4 to 5+ and need to rewrite 
> an http-post request in one function from the older http-client to the 
> new expath http client. In the attached xql file the post request 
> begins at line 102.
>
> My attempted rewrite is wrong. I've tried the following, where $tokens 
> is a json represntation of textual data from which CollateX 
> <https://collatex.net> generates an alignment table that is returned 
> in json as $results
>
> let $results := parse-json(
>         content:get-metadata-and-content(
> http:send-request(<http:request 
> href="http://52.12.26.11:8080/collatex/collate" method="post">
>         <http:body media-type="text/plain" 
> content-type="text/plain">{($tokens,$headers)}</http:body>
>         </http:request>
>         )))
>         return ... (: do stuff with $results :)
>
> Unfortunately, I cannot figure out how to address the error report 
> ("Invalid attributes") that eXist returns.
>
>     /db/apps/digitalmishnah/modules/view.xqlerr:XPTY0004 checking
>     function parameter 1 in call
>     contentextraction:get-metadata-and-content(untyped-value-check[xs:base64Binary,
>     hc:send-request(element {"http:request"} { attribute {href} {
>     http://52.12.26.11:8080/collatex/collate } attribute {method} {
>     post } text { } element {"http:body"} { attribute {media-type} {
>     text/plain } attribute {content-type} { text/plain } { ( $tokens,
>     $headers ) } } text { } } )]): Invalid attributes [at line 106,
>     column 9] In function: cmp:compare-mishnah(node(), xs:string,
>     xs:string*, xs:string)
>     [41:7:/db/apps/digitalmishnah/modules/compare.xql]
>     cmp:compare-view(node(), map(*))
>     [-1:-1:/db/apps/digitalmishnah/modules/compare.xql]
>     templates:process-output(element(), map(*), item()*,
>     element(function))
>     [211:9:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:call-by-introspection(element(), map(*), map(*),
>     function(*))
>     [189:28:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:call(item(), element(), map(*))
>     [137:36:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [148:81:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [428:17:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process-output(element(), map(*), item()*)
>     [230:9:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process-output(element(), map(*), item()*,
>     element(function))
>     [211:9:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:call-by-introspection(element(), map(*), map(*),
>     function(*))
>     [189:28:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:call(item(), element(), map(*))
>     [137:36:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [133:51:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:process(node()*, map(*))
>     [90:9:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>     templates:apply(node()+, function(*), map(*)?, map(*)?)
>     [53:5:C:\users\hlapin\eXist-db-6.0.1\data\expathrepo\shared-0.9.1\content\templates.xql]
>
>
> I'd be truly grateful for any pointers.
>
> Many thanks,
> HL
>
>
>
> _______________________________________________
> Exist-open mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/exist-open

-- 
Nick Sincaglia
President/Founder
NueMeta, LLC
Digital Media & Technology
Phone: +1-630-303-7035
[email protected]  
http://www.nuemeta.com
Skype: nsincaglia

_______________________________________________
Exist-open mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/exist-open
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.