Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Php, Soap, Asmx

9.0K
08 февраля 2012 года
t-34
129 / / 30.11.2007
На сервере стоит авторизация, т.е. без логина-пароля не подключишься. Вот пхп-код для подключения, в результате которого вылетает странное исключение.
 
Код:
function doWebService()
{  
       $soapParameters = Array('uri'=>'http://www.somesite/webservices/service.asmx?WSDL','location'=>'http://www.somesite/webservices/', 'trace' => true, 'login' => "admin", 'password' => "111") ;
       $client = new SoapClient(null, $soapParameters);    
       echo $client->SayHello();
}
doWebService();

а вот исключение

Цитата:
[08-Feb-2012 17:39:36] PHP Fatal error: Uncaught SoapFault exception: [HTTP] Method Not Allowed in /home/public_html/testlic.php:7
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://www...', 'http://www...', 1, 0)
#1 [internal function]: SoapClient->__call('SayHello', Array)
#2 /home/public_html/testlic.php(7): SoapClient->SayHello()
#3 /home/public_html/testlic.php(12): doWebService()
#4 {main}
thrown in /home/public_html/testlic.php on line 7


Может кто-нить помочь заставить разговаривать друг с другом php и asmx сервис через soap?

12
08 февраля 2012 года
alekciy
3.0K / / 13.12.2005
Написано же, что метод не поддерживается.
Кроме того, очень похоже, что WSDL у сервиса есть, но через первый параметр вызова функции ты его не подгружаешь.
9.0K
08 февраля 2012 года
t-34
129 / / 30.11.2007
Спасибо за конструктивный ответ, но Method Not Allowed != метод не поддерживается. метод не поддерживается == Method Not Supported.
На всякий случай код самого сервиса:
Код:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class Service : System.Web.Services.WebService
{

        [WebMethod]
        public string SayHello()
        {
            return "Hello, " + Context.Request.Url.Host;
        }      
}
9.0K
08 февраля 2012 года
t-34
129 / / 30.11.2007
Хотя, да, если смотреть по кодам http, то
Цитата:
http.METHOD_NOT_ALLOWED
A request was made of a resource using a request method not supported by that resource. For example, using GET on a form which requires data to be presented via POST, or using PUT on a read-only resource.


похоже, что не поддерживается.

12
09 февраля 2012 года
alekciy
3.0K / / 13.12.2005
Открой WSDL сервиса и посмотри, если там вообще вызываемый тобою метод. Код сервиса мне ни чего не говорит. Подозреваю, что это ява. На вскидку то, что указанный метод есть в коде, вовсе не означает, что он доступен по SOAP. Вообще было бы желательно для начала попробовать поработать без логина, хотя судя по ошибке с ним как раз проблем и нет.
9.0K
09 февраля 2012 года
t-34
129 / / 30.11.2007
c wsdl всё нормально, на сервере сервис открывается, работает. но, если в пхп пытаюсь получить список методов сервиса, то получаю NULL.
 
Код:
var_dump($client->__getFunctions());
12
09 февраля 2012 года
alekciy
3.0K / / 13.12.2005
Ну и укажи WSDL первым параметром вызова функции. Потому наверное и NULL, то клиент у тебя не получил список поддерживаемых методов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог