我使用Rest Api发布,获取并使用PHP放入我的简易表中。虽然POST和GET工作,但我无法让PUT工作。
这是我的代码:
docker exec mydocker cat /usr/local/src/scores.txt
不幸的是,这不起作用。经过一整天的试用,我设法得到以下错误:
HTTP错误400.请求格式错误。
有时:该项目不存在
(这取决于我是否在网址中留出空格。当然,该项目在我的表格中。)
我真的被卡住了。有谁知道它为什么不起作用?
答案 0 :(得分:1)
感谢您的回答Gary Liu和链接。实际上,在这种情况下,PUT方法是使用PATCH完成的。所以,多亏你,这就是我得到的:)
$urlAzure = 'https://<myAccountName>.azurewebsites.net/tables/<myTable>/<id>;
$dataAzure = array (
<my array to 'PATCH'>
);
$optionsAzure = array(
'http' => array(
'method' => 'PATCH',
'content' => json_encode( $dataAzure ),
'header'=> "Content-Type: application/json\r\n" .
"Accept: application/json\r\n"
)
);
$contextAzure = stream_context_create($optionsAzure);
$resultAzure= file_get_contents($urlAzure, false, $contextAzure);
if ($resultAzure === FALSE) {}
答案 1 :(得分:0)
您似乎正在移动应用中的Easy Tables中实现表操作。如果我有任何误解,请随时告诉我。
由于azure-mobile-apps Node.js Server SDK提供了将Azure SQL数据库中存储的数据表公开为WebAPI的机制,但它没有公开PUT
方法。您可以参考https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-node-backend-how-to-use-server-sdk/#TableOperations了解更多信息。
如果您坚持使用PUT
方法实施,则可以使用Easy API生成自定义API。