如何通过Prestashop的网络服务(REST API)放置记录

时间:2018-06-28 16:16:53

标签: xml rest post prestashop put

如何在没有PHP的情况下发送PUT HTTP请求?

我曾经用PHP堆过,但是现在我在写智能手机。 (使用Swift,Java和C#)。 (如果询问,我可以显示我使用的快速代码。)

GET很简单,您也可以将URL放在Web浏览器中以获得响应。我有几种获取客户,地址,产品等的方法,这些方法很好用。 (我还有许多对象模型,例如数据库表结构,用于存储数据。) (因为JSON更容易解码/编码,所以我应用“&output_format = JSON”。如果我还可以PUT / POST JSON ...)

POST也有效!我可以获取空白模式,插入新的详细信息(使用纯文本),然后将XML发送(POST)到URL。它就是这样做的,并发送响应,该响应包含插入的记录以及包含在CDATA中的详细信息。 (即<abc><![CDATA[input_data]]></abc>,我要在abc中插入input_data) 响应中包含分配的ID。很好!

但是,在提出PUT请求(将来可能会删除...)时,我总是遇到错误。

使用Fiddler,我可以查看确切的交易(请求和响应)。

我还使用了REST客户端应用程序(由WizTools.org提供),但响应异常。

但是使用PUT-要更新详细信息,我首先要根据需要更改记录(按ID),然后再将XML放回相同的URL。因此,它与上面类似,但失败了:

(发送JSON会更容易。)

PUT http://example.com/api/customers?ws_key=ABC..XYZ
Content-Type: application/xml; charset=utf-8
Accept: */*
...

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customer>
<id>
 ...
</customer>
</prestashop>

它回应:

HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset=utf-8
...

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<code><![CDATA[127]]></code>
<message><![CDATA[XML error : String could not be parsed as XML
XML length : 0
Original XML : ]]></message>
</error>
</errors>
</prestashop>

我需要使用PUT发送XML吗?

PUT与POST有何不同,还需要执行哪些额外的步骤?

0 个答案:

没有答案