Проверка возвращенного значения из POST по Curl - PullRequest
1 голос
/ 21 апреля 2019

Я вызываю удаленный C # WebService с помощью curl. Сервис возвращает 0 или 1 в зависимости от значений, переданных ему при проверке базы данных.Когда я использую echo $result значение печатается правильно.Но когда я пытаюсь сравнить выходное значение, код не работает.Пожалуйста, сообщите

$result = curl_exec($ch);
if ( $result == 0 )
{
     echo("Valid");
}
else
{
     echo("Invalid");
}

VarDump is ---> string (103) "0"

ОБНОВЛЕНИЕ :

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//So that curl_exec returns the contents of the cURL; rather than echoing it
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 

UPDATE2 : код веб-службы C # (тип возвращаемого значения int)

  try { if (dr.HasRows) { c.Close(); return 0; } else { c.Close(); return 1; } }

1 Ответ

1 голос
/ 21 апреля 2019

Ваша проблема в том, что вы на самом деле получаете XML-возврат из запроса curl. Фактический текст результата:

<?xml version="1.0" encoding="utf-8"?> 
<int xmlns="http://www.example.com/">1</int>

Вы не видите XML, потому что вы печатаете в среде HTML, и эти теги проглатываются (echo htmlspecialchars($result); сделало бы это очевидным). Вам нужно будет проанализировать XML, например, используя

$xml = simplexml_load_string($result);
$result = (int)$xml;

и затем вы можете использовать значение результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...