2016-12-06 8 views
0

Я создал приложение, которое может подключиться к Azure Web Services. Тем не менее, я хотел бы иметь возможность получать доступ к данным через браузер. Вместо использования, т. Е. Postman, я хотел бы создать для этого сайт PHP.Как мне получить доступ к Azure Mobile App Services из PHP?

Хотя база данных недоступна из внешней сети (и я не планирую ее изменять), я хотел бы использовать ту же точку доступа, что приложение использует для запросов, Azure Mobile App. (через 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

Я нашел ошибку в коде. Это была простая точка слишком много:

'ZUMO-API-VERSION: 2.0.0.' 

должен быть

'ZUMO-API-VERSION: 2.0.0'