如何从PHP访问Azure移动应用程序服务?

时间:2016-12-06 04:33:12

标签: php json azure azure-mobile-services

我创建了一个能够连接到Azure Web服务的应用程序。但是,我希望能够通过浏览器访问数据。我没有使用Postman,而是想为此创建一个PHP站点。

虽然无法从外部网络访问数据库(我不打算更改此数据库),但我希望使用应用程序用于查询的相同访问点Azure移动应用程序。 (通过http:// {...} .azurewebsites.com / tables / {...})

我做了一些研究,有人建议使用cURL来处理这个问题。我已经构建了一些代码:

<?php

function CallAPI($method, $url, $data = false, $authenticate = false, $username = "", $password = "")
{
    // Initializing cURL
    $curl = curl_init();

    // Setting headers
    curl_setopt($curl, CURLOPT_HTTPHEADER, Array('ZUMO-API-VERSION: 2.0.0.', 'Accept: application/json', 'Cache-Control: no-cache'));

    // Set actions based on method
    switch($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);
            if($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // Authentication
    if($authenticate)
    {
        $auth_string = $username.":".$password;
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($curl, CURLOPT_USERPWD, $auth_string);
    }

    // Prepare execution
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    // Execution
    $result = curl_exec($curl);

    // Cleanup
    curl_close($curl);

    return $result;
}

// $url = "http://•••.azurewebsites.net/tables/users";

$result = CallAPI("GET", $url);

echo $result;

?>

但是,当我尝试执行此操作时,我只收到此回复:

{"error":"An invalid API version was specified in the request, this request needs to specify a ZUMO-API-VERSION of 2.0.0."}

如何正确放置标题以便我收到正确的答案?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我在代码中发现了错误。这是一个简单的点太多了:

'ZUMO-API-VERSION: 2.0.0.'

必须是

'ZUMO-API-VERSION: 2.0.0'