Azure简易表 - PUT无法正常工作

时间:2016-06-23 21:36:42

标签: php azure azure-api-apps

我使用Rest Api发布,获取并使用PHP放入我的简易表中。虽然POST和GET工作,但我无法让PUT工作。

这是我的代码:

docker exec mydocker cat /usr/local/src/scores.txt

不幸的是,这不起作用。经过一整天的试用,我设法得到以下错误:

  • HTTP错误400.请求格式错误。

  • 有时:该项目不存在

(这取决于我是否在网址中留出空格。当然,该项目在我的表格中。)

我真的被卡住了。有谁知道它为什么不起作用?

2 个答案:

答案 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。