2015-05-12 3 views
3

Я пытаюсь вызвать веб-сервис, который basicaly выглядит следующим образом:file_get_contents() без ответа - PHP

http://10.10.10.10:8080/gw/someAction?amount=10&description='Some description' 

Так вот как я называю это веб-сервис:

$endpoint = "http://10.10.10.10:8080/gw/someAction?amount=10&description='Some description'"; 

    $opts = array('http' => 
      array(
        'method' => 'GET', 
        'header' => 'Content-type: application/xml' 
      ) 
    ); 

    $context = stream_context_create($opts); 

    $result = file_get_contents($endpoint, false, $context); 
    $xml_result = simplexml_load_string($result); 
    echo $xml_result->success; 

Так здесь я ничего не получил, xml_result пуст. А вот интересная часть - когда я удалить пустое пространство из описания:

http://10.10.10.10:8080/gw/someAction?amount=10&description='Somedescription' 

Все просто отлично, я получил ответ от веб-сервиса. Также попытался вызвать веб-сервис с клиентом chrome rest с пробелом в описании, и все в порядке, у меня есть ответ. Таким образом, это приводит меня к какой-то проблеме PHP здесь с пробелами в веб-службе. Пожалуйста помоги !

UPDATE:

print_r($result) 

приводит

1 

ответ

5

Это не является допустимым URL, пробелы должны быть экранированы:

http://10.10.10.10:8080/gw/someAction?amount=10&description='Some%20description' 

Вы можете взглянуть на How to properly URL encode a string in PHP? ,

+0

Didn't work..alto попробовал urlencode() без успеха. – stackUnderflow

+0

rawurlencode() только для параметра описания выполнила задание – stackUnderflow

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