Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Трабл с либой NuSOAP v 1.114 
:(
    Опции темы
1datr
Дата 3.8.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.2.2009

Репутация: нет
Всего: -1



Сервак
Код
<?
// Подключаем код NuSOAP 
require_once('../inc/nusoap.php'); 
// includes
include "../inc/db/database.php";
include "../inc/db/mysql.php";
include "../main.cfg";
include "../inc/session.php";
include "../inc/utils.php"; 
// Создаем экземпляр сервера 
$server = new soap_server(); 
// Инициализируем поддержку WSDL 
$server->configureWSDL('authwsdl', 'urn:authwsdl'); 
// Устанавливаем пространство имен с префиксом tns для WSDL-схемы 
$server->wsdl->schemaTargetNamespace = 'urn:authwsdl'; 
// Регистрируем предоставляемый метод 
$server->register('auth'/*,                // название метода 

    array('params' => 'xsd:struct'),        // входные параметры 
    array('return' => 'xsd:struct'),      // выходные параметры 
    'urn:authwsdl',                      // пространство имен 
    'urn:authwsdl#auth',                // soapaction 
    'rpc',                                // стиль 
    'encoded',                            // использование 
    'Authorize the user'            // описание        */
); 
// Определяем метод как функцию PHP 
function auth($params) {
/*
    $sess=new ivy_session(); 
//    $auth_res=md5auth($params['login'],$params['md5password'],&$_GLOBALS['db'],&$sess);
    $auth_res=auth($params['login'],$params['md5password'],&$_GLOSBALS['db'],&$sess);
    if(!$auth_res)
        {    // Authorization sucessfull        
        $retval['errcode']=0;
        $retval['login']=$_REQUEST['login'];
        $retval['user_id']=$sess->DATA['user_id'];
        $retval['status']=$sess->DATA['status'];
        }
    else 
        {
        $retval['errcode']=$auth_res;
        }
    $sess->update();
*/
    $retval=Array('name'=>$params['login'],'age'=>22);    
    return new soapval('return', 'Info', $retval, false, 'urn:MyURN');
        //return  'Hello, ' . $name; 
} 
// Используем HTTP-запрос чтобы вызвать сервис 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA);
?>

Клиент
Код
<?php 
// Подключаем код NuSOAP 
require_once('../inc/nusoap.php'); 
// Создаем экземпляр клиента 
$client = new soapclient('http://dairy/xml/auth.php');
// Проверяем, возникла ли ошибка 
$err = $client->getError(); 
if ($err) { 
    // Отображаем ошибку 
    echo '<p><b>Ошибка в конструкторе: ' . $err . '</b></p>'; 
    // Здесь мы уже знаем, что все последующие вызовы закончатся неудачно 
} 
// Вызываем SOAP-метод 
$user = Array('login' => '1datr', 'md5password' => 'beowulf_21_x');
//$user = Array(new soapval('A_STRING', 'login', '1datr'), new soapval('A_STRING', 'md5password', 'beowulf_21_x'));
/*
$result = $client->call( 
    'auth',                    // название метода 
    array('params' => new soapval('params', 'Params', 
                                  $user, false, 'urn:MyURN'))    // входные параметры 
); 
*/
$result = $client->call('auth',Array('params'=>$user));
// Проверяем, возник ли сбой 
if ($client->fault) { 
    echo '<p><b>Сбой: '; 
    print_r($result); 
    echo '</b></p>'; 
} else { 
    // Проверяем, возникла ли ошибка 
    $err = $client->getError(); 
    if ($err) { 
        // Отображаем ошибку 
        echo '<p><b>Ошибка: ' . $err . '</b></p>'; 
    } else { 
        // Отображаем результат 
        print_r($result); 
    } 
}

?>

Клиент выдает:
Код
Ошибка: Response not of type text/xml: text/html; charset=windows-1251

PM MAIL   Вверх
ruX
Дата 4.8.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: нет
Всего: 3



Может послать header("Content-type: text/xml"); ?
/чисто предположение/

А вот что нагуглилось: на каком то форуме

--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
Fabio
Дата 25.8.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 9.11.2007

Репутация: нет
Всего: нет



Дело не в типе передаваемых данных, а в настройке php, где скорее всего указано register_globals off.
В коде твоего сервера
Код

// Используем HTTP-запрос чтобы вызвать сервис 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA);

вместо $HTTP_RAW_POST_DATA нужно использовать $_GLOBALS['HTTP_RAW_POST_DATA'], иначе похоже сервер у тебя шлёт клиенту пустую строку

Это сообщение отредактировал(а) Fabio - 25.8.2009, 15:13
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.