У меня есть веб-приложение и API, и моя система входа в систему работает с API, поэтому она повторяется: статус заголовка 200, если он успешен (имя пользователя и пароль верны), в противном случае он возвращает HTTP/1.0 401 Неавторизованное и json-сообщение, например: {success: 0 , "неправильно имя пользователя/пароль"} (проверено с помощью плагина POSTMEN в google chrome)
Например, если я хочу сделать запрос:
$method = "login";
$data = array("user"=>"test", "pass"=>"test");
send_re($method, $data);
это моя функция send_re
function send_re($method, $data){
$url = "api.location/".$api_method;
$options = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data),
'header'=> "Content-Type: application/x-www-form-urlencoded\r\n"
)
);
$context = stream_context_create( $options );
$result = file_get_contents( $url, false, $context );
return stripslashes( json_encode( $result) );
}
если мои $data верны, например, имя пользователя и пароль, но если это не так, я не получаю сообщение об ошибке, но это:
A PHP Error was encountered
Severity: Warning
Message: file_get_contents(http://85.10.229.108/home/login): failed to open stream: HTTP request
HTTP/1.0 401 Unauthorized
Filename: libraries/api.php
Есть ли способ избежать этой проблемы и получить сообщение от API?
@
передfile_get_contents
для подавления предупреждений? - person luk2302   schedule 29.06.2013@
, но не возвращает ответ json e.x:{success: 0 , "wrong username/password"}
- person Sabri Aziri   schedule 29.06.2013@
действительно должно подавлять предупреждение, но оно также подавляет сообщения о более серьезных ошибках. Не лучшая практика. - person Daniel P   schedule 29.06.2013