我正在尝试构建一个Moqui服务来从远程REST JSON api拉取和推送数据,但是他们要求我使用自定义的头(例如X-App-Access-Token: {access_token} )进行身份验证,并且当从服务调用API时,我似乎找不到添加这个头的方法?
<service verb="get" noun="Orders" type="remote-json-rpc" location="https://example.com/admin/orders.json"> <in-parameters> <parameter name="marketplaceId"/> <parameter name="accessToken"/> </in-parameters> <actions> <service-call name="create#mantle.order.OrderHeader" in-map="context" out-map="context"/> </actions> </service>
谢谢你的帮助!
相同的
发布于 2015-07-16 00:35:17
首先需要注意的是:您设置服务的方式是调用远程JSON RPC服务,通常情况下,最好使用单独的服务调用此服务和另一个本地服务来创建订单。对于更复杂的数据结构,比如订单,通常最好调用其中一个服务(比如创建OrderHeader和一个OrderPart的OrderServices.create#Order ),而不是调用一个简单的crud隐式定义的自动实体服务。
将这样的本地服务设置为远程JSON-RPC服务的占位符是由RemoteJsonRpcServiceRunner.runJsonService()方法处理的。该方法是静态的,您也可以直接调用它。它调用StupidWebUtilities.simpleHttpStringRequest()方法,这是HttpClient内容所在的地方,也是您需要添加自定义头部的地方。
在当前的代码中,无法做到这一点。上面提到的两种方法可以扩展为支持类似附加headers Map的东西,这可能不是一个坏主意,因为它在其他场景中可能很有用。您也可以编写自己的方法或服务脚本片段来完成它们的功能,这是相当简单的代码。
https://stackoverflow.com/questions/31398106
复制相似问题