我想打个补丁呼叫服务器。 我使用下面的命令:
curl --data status=closed -X PATCH https://api.viafoura.com/v2/dev.viafoura.com/pages/7000000043515
这是发送PATCH请求的正确方法是什么? 我收到一个错误说没有状态的参数集。 我猜的--data是POST请求只,因此服务器没有找到状态参数。
这是响应(FYI):
{"http_status":400,"error":"Parameter validation errors","validation_errors":{"status":{"error":"Request missing status parameter."}}}
你可以找到有关该服务的文档在这里 。
这是你应该使用以下格式:
curl --request PATCH https://api.viafoura.com/v2/dev.viafoura.com/pages/7000000043515?status=closed
使用-X
似乎并不在发送PATCH请求方面的工作-你必须使用--request PATCH
。 此外,该API似乎想将status
参数上的URL,补丁身体不属于查询参数。
此时服务器将返回一个401错误:“您必须先登录才能修改页面设置” Assumedly你必须有这样的初次登录:
curl --request POST "https://api.viafoura.com/v2/dev.viafoura.com/users/login?password=TeNn!sNum8er1&email=novak@example.com"
我使用的凭据从他们在例如文档,我想他们的开发服务器上的工作,但目前它返回一个“密码不正确”的错误。
如果您拥有有效的凭据,但是,你应该得到一个会话cookie,然后您可以用它来验证您的PATCH请求。
我试图补丁,具有类似卷曲请求tastypie资源。 对我来说,问题是数据必须通过在像这样:
curl --data '{"field": "new_value"}' -X PATCH http://127.0.0.1:8000/api/v1/resource_uri/pk/
请注意如何我传递给数据标志是什么样子作为字符串传递,而不是直接把帕拉姆作为问题的字典里。 当然,设置了一个param也工作作为已经回答了,但希望这可以帮助一些人。
你的命令行应该工作。 正如你可以在PATCH见RFC5789 ,在HTTP请求类似于什么卷曲发(使用--trace-ascii的去看到完整的卷曲通信)。 你可能想(使用改变的Content-Type --header )。
所提到的失踪状态参数所指的可能是在请求体内容。 您的“状态=关闭”的数据可能是不正确的格式(JSON?),或者是不完整的。
(你似乎意在包括一个链接到API,但没有链接那里!)
这东西这在我的示例应用程序为我工作。
curl --data 'id=57&equipment_type_name=57 edited' -X PATCH http://localhost:5009/equipment-type/update
{ "info": "Equipment type updation.", "response": { "status": "success", "message": "updateEquipmentType", "result": { "data": [ [ { "update_status": 1 } ], { "fieldCount": 0, "affectedRows": 0, "insertId": 0, "serverStatus": 2, "warningCount": 0, "message": "", "protocol41": true, "changedRows": 0 } ] } } }
另一种方法是如下,这是通过POST调用虽然
curl --data status=closed https://api.viafoura.com/v2/dev.viafoura.com/pages/7000000043515?verb=PATCH
我猜测这是不是一个普遍的方式,仅适用于这个特定的实例。