-1

调用 REST API 方法时,我返回有错误

处理请求流时出错。有效负载必须代表集合的有效数组格式。

但是在搜索时:

集合的有效数组格式

我回来了很多,但没有什么能澄清这是什么意思。我猜我发送的数据无效(目前我正在发送一个array('foo' => 'Bar')),但这可能不正确。

有没有人知道这里发生了什么?或者我可以检查什么?

(我发布到)的文档ExactOnline是不够的。它只说明了他们有哪些字段,但没有说明这些错误消息。

===========================

好的,这需要一些澄清,我的错!

正如所写,我正在通过他们的 API 与 ExactOnline 进行通信。

我正在调用该方法来发布销售订单。有了这个,我正在使用 Exact 在他们的网站上提供的一组脚本(针对开发人员)。

在页面上: https ://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=SalesOrderSalesOrders

在“POST”下,您可以阅读必填字段,“SalesOrderLines”就是其中之一。它没有告诉我它期望什么或以什么格式。

我将数组包装在 json_encode 中并再次尝试,但没有运气。它仍然告诉我同样的错误。

4

2 回答 2

3

I'am currently using the same ExactOnline API. Have to say that the documentation lacks in information on this topic indeed!

To make a valid array for collections you have to use the following base:

$array = array(
   'InvoiceTo' => 'bc960e43-be9d-409c-9cfe-31ce56cc3238',
       'SubscriptionLines' => array(
           array('Item' => '7e50702b-5bbf-4b77-ab73-5dad50016e82')
       )
)

The json_encode($array) on this list would be:

{
"InvoiceTo":"bc960e43-be9d-409c-9cfe-31ce56cc3238",
    "SubscriptionLines":[
        {"Item":"7e50702b-5bbf-4b77-ab73-5dad50016e82"}
    ]
}

So the important part here is to do array(array()) inside the SubScriptionLines. This tells the JSON that you want to use an JSON Array instead of the JSON Object notation.

For your particular question you need to change the keys into the keys given in the documentation for a SalesOrder. Not all manditory fields of the api are included here, because this solution is for Subscriptions. However, the principle will be the same.

Hope this will help you and others implementing the exact API fully :)

于 2016-10-18T20:06:21.200 回答
1

你是如何序列化你的有效载荷的?如果它打算采用 JSON 格式,则集合将如下所示:

[
    {
        "foo": "bar"
    },
    {
        "foo": "baz"
    }
]
于 2015-12-03T16:00:58.597 回答