В этой статье показано, как PHP вызывает операции API с помощью SOAP. Поделитесь для вашей справки следующим образом:
/* Picture conversion to Base64 format encoding*/
function base64EncodeImage($image_file)
{
$base64_image = '';
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, 'r'), filesize($image_file));
//$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
$base64_image = chunk_split(base64_encode($image_data));
return $base64_image;
}
$strPhotoFront_base64 = base64EncodeImage("static/img/a.png");
$strPhotoRear_base64 = base64EncodeImage("static/img/b.png");
$paras["strPhotoFront"] = $strPhotoFront_base64;
$paras["strPhotoRear"] = $strPhotoRear_base64;
$paras["strSecretKey"] = "";
$wsdl = "";
$client = new SoapClient($wsdl);
$soapParas = array($paras);
$outString = $client->__soapCall("UploadPhotoId", $soapParas);
$obj = simplexml_load_string($outString->UploadPhotoIdResult->any);
echo($obj->ExtraInfo);
echo "
";
echo($obj->ExtraCode);
echo "
";
echo($obj->Code);
echo "
";
echo($obj->Message);Примечание: Предложения: Фатальная ошибка: Класс ‘SoapClient’ не найден Обратитесь к “PHP-классу SoapClient Не найдено решение”
Привязанность: SOAP-ОШИБКА: Синтаксический анализ WSDL: Не удалось загрузить из решения “xxxxxx”
Подключение веб-службы третьей стороны с помощью php SoapClient является https, и сообщается об ошибке подключения SOAP-ОШИБКА: Анализ WSDL:Не удалось загрузить с “xxxxxxx”
Во – первых, проверьте, установлено ли расширение soap PHP
Расширение OpenSSL
Сервер сам устанавливает OpenSSL
Устраните ограничения на IP-адреса третьих лиц на этом сервере
Наконец, есть подозрение, что HTTPS требует проверки SSL, и на компьютере нет файла PEM
Проверка SSL может быть проигнорирована с помощью следующих настроек
Verify_peer: Указывает, проверяется ли SSL по умолчанию на истинность
Установите для параметра verify_peer значение false
Кроме того, разрешается ссылаться на внешние XML-объекты
плюс libxml_disable_entity_loader(ложь); Предложение
libxml_disable_entity_loader(false);
$opts = array(
'ssl' => array(
'verify_peer' => false
),
'https' => array(
'curl_verify_ssl_peer' => false,
'curl_verify_ssl_host' => false
)
);
$streamContext = stream_context_create($opts);
$client = new SoapClient("https://urlToSoapWs",
array(
'stream_context' => $streamContext
));
Запретить ссылки на внешние XML-объекты
libxml_disable_entity_loader(true);
Nginx сообщил об ошибке время ожидания в восходящем потоке (110: Время ожидания соединения истекло) Решение
Nginx каждые несколько часов сообщает о следующих ошибках:
2013/05/18 21:21:36 [ошибка] 11618#0: *324911 вышестоящее время ожидания истекло (110: Время ожидания соединения истекло) при чтении заголовка ответа из вышестоящего, клиент: 42.62.37.56, сервер: локальный хост, запрос: “ПОЛУЧИТЬ/фрагмент кода/2747/HTML5-Холст-использование HTTP/1.0”, вверх по течению: “fastcgi://127.0.0.1:9002”, хост: “outofmemory.cn”, реферер: “http://outofmemory.cn/code-snippet/tagged/canvas”
После сообщения об этой ошибке весь сервер не ответит, но в программе web py, стоящей за nginx, ошибок нет, и внутренняя база данных также в норме. После проверки большого количества информации из Интернета говорится, что ее необходимо изменить. proxy_read_timeout , proxy_send_timeout и proxy_buffer Несколько значений для соответствующих настроек.
Следующая конфигурация должна быть размещена в разделе конфигурация сервера
large_client_header_buffers 4 16k; client_max_body_size 30 м; client_body_buffer_size 128 к; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_send_timeout 300; proxy_buffer_size 64 к; proxy_buffers 4 32 к; proxy_busy_buffers_size 64 к; proxy_temp_file_write_size 64 к; fastcgi_connect_timeout 300; fastcgi_read_timeout 300; fastcgi_send_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 32k; fastcgi_busy_buffers_size 64k; fastcgi_temp_file_write_size 64k;
Вы можете видеть, что выше указаны proxy_ и fastcgi_ Две конфигурации, то есть, если за вашим nginx следует прокси, установите конфигурации, связанные с прокси, а если это fastcgi, установите конфигурации, связанные с fastcgi.
Читатели, интересующиеся контентом, связанным с PHP, могут ознакомиться с разделами этого веб-сайта: Краткое описание работы с файлами PHP, Структура и алгоритмы данных PHP, Краткое описание алгоритмов программирования PHP, Полный набор навыков работы с массивами PHP, Краткое описание использования строк PHP и Краткое описание навыков работы с общими базами данных PHP.
Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.