gpt4 book ai didi

wso2 - 向 ESB 发送 POST 请求

转载 作者:行者123 更新时间:2023-12-01 23:55:05 24 4
gpt4 key购买 nike

我正在尝试为 WSO2 ESB 创建一个 Google 自定义搜索连接器.创建连接器后,我已将连接器添加到 ESB。那我想测试一下。

我的测试初始化​​文件是这样的:

<template name="listVolume" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="apiKey" description="Full-text search query string." />
<parameter name="csiKey" description="Full-text search query string." />
<parameter name="searchPara" description="Full-text search query string." />
<sequence>
<property name="uri.var.apiKey" expression="$func:apiKey" />
<property name="uri.var.csiKey" expression="$func:csiKey" />
<property name="uri.var.searchPara" expression="$func:searchPara" />
<call>
<endpoint>
<http method="get"
uri-template="https://www.googleapis.com/customsearch/v1?key={uri.var.apiKey}&amp;cx={uri.var.csiKey}&amp;q={uri.var.searchPara}" />
</endpoint>
</call>
</sequence>
</template>

在我像这样在 ESB 中配置自定义代理服务之后:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="googlecustomsearch_list"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="apiKey" expression="json-eval($.apiKey)"/>
<property name="csiKey" expression="json-eval($.csiKey)"/>
<property name="searchPara" expression="json-eval($.searchPara)"/>
<googleCustomSearch.listSearch>
<apiKey>{$ctx:apiKey}</apiKey>
<csiKey>{$ctx:csiKey}</csiKey>
<searchPara>{$ctx:searchPara}</searchPara>
</googleCustomSearch.listSearch>
<respond/>
</inSequence>
<outSequence>
<log/>
<send/>
</outSequence>
</target>
<description/>
</proxy>

然后我像这样在 REST 客户端中测试它:

POST http://nilash-TECRA-M11:8280/services/googlecustomsearch_list

{
"apiKey":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"csiKey":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"searchPara":"google"
}

然后我得到这样的输出:

Status Code: 202 Accepted
Connection: keep-alive
Date: Sat, 14 Jun 2014 05:22:34 GMT
Server: WSO2-PassThrough-HTTP
Transfer-Encoding: chunked

但是搜索结果不会出现。我在下面列出了控制台中的这个错误。

ERROR - SynapseJsonPath #stringValueOf. Error evaluating JSON Path <$.apiKey>. Returning  empty result. Error>>> invalid path
[2014-06-14 10:52:34,883] ERROR - SynapseJsonPath #stringValueOf. Error evaluating JSON Path <$.csiKey>. Returning empty result. Error>>> invalid path
[2014-06-14 10:52:34,884] ERROR - SynapseJsonPath #stringValueOf. Error evaluating JSON Path <$.searchPara>. Returning empty result. Error>>> invalid path

但是,如果我像这样将 Google API key 直接放入 init 文件的配置中,我可以获得预期的结果。

 <http method="get" uri-template="https://www.googleapis.com/customsearch/v1?q={uri.var.searchQuery}&amp;key=XXXXXXXXXXXXXXXXXXX&amp;cx=XXXXXXXXXXXXXXXX"/>

可能是什么问题?

最佳答案

好像你的JSON路径有误,改一下

  <googleCustomSearch.listSearch>

 <googleCustomSearch.listVolume>

然后尝试。使用下面列出的博客获取更多信息。

http://chanakaindrajith.blogspot.com/2014/04/getting-started-with-wso2-esb-connectors.html

关于wso2 - 向 ESB 发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com