2016-12-06 1 views
0

Ich habe eine App erstellt, die eine Verbindung zu den Azure-Webdiensten herstellen kann. Ich möchte jedoch auch über einen Browser auf die Daten zugreifen können. Anstatt d. H. Postman zu verwenden, würde ich gerne eine PHP-Site dafür erstellen.Wie greife ich auf Azure Mobile App Services von PHP aus zu?

Während auf die Datenbank vom externen Web aus nicht zugegriffen werden kann (und ich beabsichtige nicht, dies zu ändern), möchte ich den gleichen Zugriffspunkt verwenden, den die App für Abfragen verwendet, die Azure Mobile App. (über http: // {...} .azurewebsites.com/tables/{...})

Ich habe einige Nachforschungen angestellt und jemand schlug vor, cURL zu verwenden, um damit umzugehen. Ich habe einige Code gebaut:

<?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; 

?> 

Allerdings, wenn ich versuchen, dies auszuführen, erhalte ich nur diese Antwort:

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

Wie kann ich in richtig den Header setzen, so dass ich eine richtige Antwort erhalten ? Vielen Dank im Voraus für Ihre Hilfe.

Antwort

1

Ich habe den Fehler im Code gefunden. Es war ein einfacher Punkt zu viel:

'ZUMO-API-VERSION: 2.0.0.' 

muss

'ZUMO-API-VERSION: 2.0.0' 

sein
Verwandte Themen