powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SOAP помогите пожалуйста
7 сообщений из 7, страница 1 из 1
SOAP помогите пожалуйста
    #38454362
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый раз пишу SOAP клиент написал:

$log -> log("import_trs.php --- Начало");

$sResURL = " http://10.32.201.50:50123/WebServises/DataService/SignDataService.svc?wsdl";
$sName = "ТРС";
$uName = "user_1_1";
$dDesc = "Описание";
$dType = "1";
$dFormat = "1";
$dClass = "1";
$dFile = "1";
$trans = "1";
$return = null;



$log -> log("Тут был".$sResURL);


$client = new SoapClient("$sResURL");

$log -> log("Тут был_2");

после new SoapClient выполнение обрывается, какие могут быть причины?
...
Рейтинг: 0 / 0
SOAP помогите пожалуйста
    #38454402
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка Fatal error: Class 'SoapClient' not found in
...
Рейтинг: 0 / 0
SOAP помогите пожалуйста
    #38456301
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50,

а что phpinfo говорит ? либа подключена с СОАПом ?
...
Рейтинг: 0 / 0
SOAP помогите пожалуйста
    #38456691
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artas,

Спасибо, получилось, оказалась библиотека soap была битая

теперь возникла такая проблема

Код: php
1.
Указанное в сообщении действие SOAP, "", не соответствует действию HTTP



что это значит?
...
Рейтинг: 0 / 0
SOAP помогите пожалуйста
    #38456840
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lynatik50,

ну это уже маны по соапу курить надо. Если приведенный код весь, то значит ВСЛД битый, скорее всего
...
Рейтинг: 0 / 0
SOAP помогите пожалуйста
    #38456861
lynatik50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artas,

нет не весь,вот весть:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
<?php
require_once 'un.api.php';
//require_once 'nsi_soap.php';
set_time_limit(10); //время обработки скрипта
ini_set('default_socket_timeout', 20);
ini_set('display_errors','On');

/*
$sql = "select count (RDB\$PROCEDURE_NAME) from  RDB\$PROCEDURES where RDB\$PROCEDURE_NAME = 'CHECK_PACKAGE'";
$count = $db->getOne($sql);
if ($count == 0)
{
$db->Exec("Написать текст хранимки");
}
	$db->Exec("execute procedure GEN_USERS");
$log -> log('3');
	$ui->refresh('таблица которую затрагивает хранимка');
	$ui->refresh('SYS_USERS - таблица которую затрагивает хранимка');
$log->log('Конец');
*/



$file = 'trs_import_session.txt';
$sResURL = "http://ron-esep:50123/WebServises/DataService/SignDataService.svc?wsdl";
$sName = "ТРС";
	$cu  = $ui->parsetemplate("[CURRENTUSER]");
	$sql = "select LOGIN from SYS_USERS where SYS_GUID=".$cu;
	$log -> log($sql);
$uName = $db->getone($sql);
$dDesc = "";
$dType = "Сведения о лицензиях";
$dFormat = "SpreadsheetML";
//$dClass = "<DocClassification><Classifier id =\"1\" namе=\"Субъекты РФ\"><Class id=\"77\" name=\"Москва\"/></Classifier><Classifier id =\"2\" 
//namе=\"Направления деятельности\" ><Class id=\"30\" name=\"Лицензирование\"/><Class id=\"31\" name=\"Контроль  и надзор\"/></Classifier></DocClassification>"; 
$docUrl = "http://trs.obrnadzor.gov.ru/docs/HelpRegUser18.09.2012.zip";
$trans = true;
$return = "";


$sql = "select em.rbdc_regionsfk from sys_users as su
inner join employees as em on em.userfk = su.sys_guid where su.login = '$uName'";
$region = $db->getone($sql);
$log -> log("Region: ".$region);
$dClass = "<DocClassification><Classifier id =\"1\" namе=\"Субъекты РФ\"><Class id=\"$region\" name=\"..\"/>
</Classifier><Classifier id =\"2\" namе=\"Отчетный период\"><Class id=\"..\" name=\"..\"/>
</Classifier><Classifier id =\"3\" namе=\"Направление деятельности\" ><Class id=\"1001\" name=\"Лицензирование\"/>
</Classifier></DocClassification>";
$log -> log("dClass: ".$dClass);



$client = new SoapClient($sResURL, array('soap_version'=> SOAP_1_2, 'trace' => 1)); //версия SOAP

$params = array
(
'systemName'=>"$sName", 
'userName'=>"$uName",
'docDescription' => "$dDesc",
'docType' => "$dType",
'docFormat' => "$dFormat",
'docClassification' => "$dClass",
'docUrl' => "$docUrl",
'transferToUnifiedStorage' => "$trans",
'returnBackUrl' => "$return"
);

echo $params["systemName"];

$log -> log("УРЛ с: ".$params["systemName"]);
$log -> log("Имя системы: ".$params["userName"]);
$log -> log("Логин пользователя: ".$params["docDescription"]);
$log -> log("Описание: ".$params["docType"]);
$log -> log("Тип документа: ".$params["docFormat"]);
$log -> log("Формат документа: ".$params["docClassification"]);
$log -> log("ХМЛ строка: ".$params["docUrl"]);
$log -> log("УРЛ документа: ".$params["transferToUnifiedStorage"]);
$log -> log("Загружать или нет: ".$params["returnBackUrl"]);

$log->log("asdfasdf");

$mID=$client->__getFunctions();
$log->log("mid ".count($mId));

$typesArray = $client -> __getTypes();
$log -> log("types count = ".count($typesArray));
$log -> log(var_dump($typesArray));
$log->log($client->__getLastRequest());



$actionHeader = new SoapHeader('http://www.w3.org/2005/08/addressing',
                               'Action',
                               'http://tempuri.org/ISignDataService/SendDocUrl');
$client->__setSoapHeaders($actionHeader);
$sID = $client->SendDocUrl($params);


$log->log("asdfasdf");
$log->log($sID);

/*$res = $sID->getall($sID);

$log -> log($res["ResultCode"]);
$log -> log($res["ResultMessage"]);
$log -> log($res["OperID"]);
$log -> log($res["ESEPGUIActivationURL"]);*/

//if $sID -> ResultCode

//	file_put_contents($file,serialize($sID));
//	$text = file_get_contents($file);
//$log -> log($text);
/*$log -> log("Тут был_4");

$log -> log("Конец");
*/

//$sID = $client->GetSessionId($params);


?>




его смысл не сильно отличается, прикрутил это в надежде избавиться от ошибки
Код: php
1.
2.
3.
4.
5.
$actionHeader = new SoapHeader('http://www.w3.org/2005/08/addressing',
                               'Action',
                               'http://tempuri.org/ISignDataService/SendDocUrl');
$client->__setSoapHeaders($actionHeader);
$sID = $client->SendDocUrl($params);



но получил другую ошибку:

Сообщение с Кому "" не может быть обработано на стороне получателя из-за несоответствия AddressFilter на EndpointDispatcher. Проверьте согласованность адресов EndpointAddress на стороне отправителя и получателя.

на что разраб сервиса сказал:

Тебе надо как-то сконфигурировать у себя клиент, чтобы он не проверял пользователя, а работал анонимно.

как это сделать?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SOAP помогите пожалуйста
    #39224342
WizzyWu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lynatik50,

Добрый день. Не подскажете, удалось ли вам победить описанную проблему. Просто я сейчас работаю над той же проблемой с подключение к тому же сервису. (Это было бы даже забавно, если бы не было так грустно).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SOAP помогите пожалуйста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]