2014-09-11 4 views
0

У меня есть следующий код PHP, который действует как прокси-сервер для моего сервера HTTP

slavePref.php

<?php 
    $url = 'http://xyzdei/IPDWSRest/Service1.svc/getServerUtil'; 

    $callback = $_GET["callback"]; 
    echo($callback . "("); 
    header('Content-Type: application/json; charset=utf8'); 
    echo(file_get_contents($url . '/' . $_GET["poolingServer"], $_GET["serverPID"])); 

    echo (")"); 
    ?> 

вебсервис, размещенного на IIS имеет следующий контракт

[OperationContract] 
     [FaultContract(typeof(ExceptionOnIPDWS))] 
     [WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "getServerUtil/{poolingServer}&{serverPID}", ResponseFormat = WebMessageFormat.Json, Method = "GET")] 
     //Status getServerUtil(string poolingServer,string serverPID, ref string oCreateResult); 
     string getServerUtil(string poolingServer, string serverPID); 

в браузере Я пытаюсь вызвать Ури как

HTTP: // : 1136/slavePerf.php poolingServer = thunderw7dei & serverPID = 23456

Однако запрос неудачу со следующим сообщением

>

Notice: Undefined index: callback in C:\Users\xom\Documents\My Web 
> Sites\EmptySite2\slavePerf.php on line 4 (Warning: 
> file_get_contents(http://xomw764dei/IPDWSRest/Service1.svc/getServerUtil/thunderw7dei): 
> failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in 
> C:\Users\xom\Documents\My Web Sites\EmptySite2\slavePerf.php on line 8 
>) 

?. Я думаю, что правильно не передаю аргументы

+0

«Однако запрос терпит неудачу» -> Errormessage? –

+1

@EdiG. Я обновил сообщение об ошибке –

+1

У вас есть параметр 'callback' в вашей части запроса в URL-адресе? –

ответ

1

Проблема была решена, когда я изменил мой файл PHP для file_get_contents

echo(file_get_contents($url . '/' . $_GET["poolingServer"])); 

и мой uriTemplate для

[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "getServerUtil/{poolingServer}/{serverPID}", ResponseFormat = WebMessageFormat.Json, Method = "GET")] 
1

Вы не устанавливаете параметр «обратный вызов», поэтому он не задается в переменных $ _GET.

Вы можете исправить сообщение об ошибке, выполнив:

$callback = ""; 
if(array_key_exists('callback', $_GET) == TRUE){ 
    $callback = $_GET['callback']; 
} 

и добавить '&' в URL:

echo(file_get_contents($url . '/' . $_GET["poolingServer"] . '&' . $_GET["serverPID"])) 
+0

Теперь его отчетность Внимание: file_get_contents (http: //xomw764dei/IPDWSRest/Service1.svc/getServerUtil/thunderw7dei&23456 '): не удалось открыть поток: HTTP-запрос не удался! HTTP/1.1 400 Bad Request в C: \ Users \ xom \ Documents \ Мои веб-сайты \ EmptySite2 \ slavePerf.php в строке 8 –

+0

Правильно ли установлен мой шаблон uri в webservice UriTemplate = "getServerUtil/{poolingServer} & {serverPID} " –

+0

http://stackoverflow.com/questions/8482782/file-get-contents-throws-400-bad-request-error-php –

Смежные вопросы