2016-06-23 17 views
1

私はRest APIを使用して、PHPを使用して簡単なテーブルに投稿、取得、配置します。 POSTとGETは動作しますが、PUTを動作させることはできません。Azure easy tables - PUTが動作しない

$urlAzure = 'https://<account name>.azurewebsites.net/tables/<tableName>(PartitionKey="<key>",RowKey="<row key>")'; 

    $dataAzure = array (
    'PartitionKey' => <key>, 
    'Owner' => $_SESSION['username'], 
    'RowKey' => '<row key>', 
    'mediaUrl' => '' 
); 


    $optionsAzure = array(
    'http' => array(
     'method' => 'PUT', 
     '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) {} 

残念ながら、これが機能していません。

は、ここに私のコードです。裁判の一日後、私は次のエラーを取得するために管理している:

  • HTTPエラー400要求がひどく形成されています。

  • 、時には:アイテムが

存在しない(これは私がURL内のスペースかを行うかどうかに依存もちろん、アイテムが私のテーブルです。)。

私は本当にこだわっています。なぜ誰かがそれが働いていないという考えを持っていますか?

答えて

0

あなたがモバイルアプリで簡単に表にテーブル操作を実装しているようです。私に誤解がある場合は、私に知らせてください。

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方法で実装を主張した場合、あなたは簡単にAPIを活用したカスタムAPIを生成することができます。

1

は、あなたの答えゲイリー劉のためにリンクをありがとうございました。実際、この場合の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) {} 
関連する問題