1

我正在使用 MarkLogic 8 并尝试向服务器发出 POST 请求。我可以通过 curl 或使用 POSTMan 进行连接,但是使用 Markloigc 失败了。一篇类似的帖子表明这是 SNI 的一个问题,因为 Markloigc 使用的是 OpenSSL。我试图将选项放在发布请求中,但是,我仍然遇到同样的错误。解决此问题的任何见解?请参阅下面的代码片段:

xdmp:http-post($post_url,
                        <options xmlns="xdmp:http">
                         <data>{xdmp:quote($custom_json)}</data>                              
                         <headers>
                           <content-type>application/json</content-type>
                           <Host>{$host}</Host>
                         </headers>
                         <allow-sslv3>true</allow-sslv3>
                       </options>
                        )
4

2 回答 2

0

只是为了更新这个线程,我在 MarkLogic 9 中测试了相同的代码并且它正在工作。我不确定这是否是 Marklogic 8 和它使用的 OpenSSL 库的组合。

于 2019-04-02T15:52:43.803 回答
0

看起来您没有发送任何凭据。尝试这样的事情:

xdmp:http-post(
    $post_url,
    <options xmlns="xdmp:http">
        <data>{xdmp:quote($custom_json)}</data>                              
        <headers>
            <content-type>application/json</content-type>
            <Host>{$host}</Host>
        </headers>
        <allow-sslv3>true</allow-sslv3>
        <authentication method="digest">
            <username>myUsername</username>
            <password>myPassword</password>
        </authentication>
    </options>
)
于 2019-03-22T13:02:56.703 回答