Yum*_*nc. 5 xml rest post put prestashop
如何在没有PHP的情况下发送PUT HTTP请求?
我已经使用了PHP堆,但现在我正在为智能手机写作.(使用Swift,Java并且是C#).(如果被问到,我可以显示我使用的快捷代码.)
GET很简单,您也可以将URL放在Web浏览器中以获得响应.我有几种方法来获取客户,地址,产品等,这些方法运作良好.(我还有许多对象模型 - 比如数据库表结构 - 存储数据.).(因为JSON更容易解码/编码,我应用"&output_format = JSON".如果我也可以PUT/POST JSON ...)
POST也在工作!我可以获取空白模式,插入新的详细信息(使用纯文本)并将XML发送(POST)到URL.它确实是这样,并发送一个包含插入记录的响应,其中包含CDATA包含的详细信息.(即我想在abc中插入input_data)响应包括指定的id.这很好用!
然而,当涉及到制作PUT(以及将来可能是DELETE ......)时,我一直都会遇到错误.
使用Fiddler,我可以查看确切的事务(请求和响应):[请参阅:https : //ibb.co/kC0QTy ]我还使用了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>
Run Code Online (Sandbox Code Playgroud)
它响应:
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>
Run Code Online (Sandbox Code Playgroud)
使用PUT我需要什么来发送XML?
PUT与POST有何不同,需要采取哪些额外步骤?