|   |   | 
| 
 | HTTPСоединение.ОтправитьДляОбработки | ☑ | ||
|---|---|---|---|---|
| 0
    
        andr_hav 15.07.13✎ 11:13 | 
        Есть такой Web-сервис
  http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws?wsdl когда набираю в браузере возвращается описание, значит он рабочий, даже код написанный с использованием WSОпределения - работает. Хочу взаимодействие организовать через запрос используя HTTPСоединение. Код: ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла(); ОбъектЗапись = Новый ЗаписьXML; ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", , Ложь); ОбъектЗапись.ОткрытьФайл(ИмяФайлаЗапроса, ПараметрыЗаписиXML); ОбъектЗапись.ЗаписатьОбъявлениеXML(); // выводим корневой элемент CallTSD ОбъектЗапись.ЗаписатьНачалоЭлемента("CallTSD"); // выводим элемент Command ОбъектЗапись.ЗаписатьНачалоЭлемента("Command"); ОбъектЗапись.ЗаписатьТекст("команда"); ОбъектЗапись.ЗаписатьКонецЭлемента(); // выводим элемент Data ОбъектЗапись.ЗаписатьНачалоЭлемента("Data"); ОбъектЗапись.ЗаписатьТекст("дата"); ОбъектЗапись.ЗаписатьКонецЭлемента(); // записываем конец для корневого элемента ОбъектЗапись.ЗаписатьКонецЭлемента(); ОбъектЗапись.Закрыть(); АдресСервераОнлайнПроверки = "upr.softrust.ru"; РесурсНаСервере = "/TechosilaDrTSD/ws/tsd.1cws?wsdl"; Прокси = Новый ИнтернетПрокси; Прокси.Пароль = "tsd"; Прокси.Пользователь = "tsd"; // устанавливаем соединение с сервером Попытка Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки, ,"tsd","tsd", ); Исключение Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); Возврат; КонецПопытки; // посылаем запрос ФайлРезультата = ПолучитьИмяВременногоФайла(); Попытка Соединение.ОтправитьДляОбработки(ИмяФайлаЗапроса, РесурсНаСервере, ФайлРезультата); Соединение = Неопределено; Исключение Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); КонецПопытки; сделал как в синтаксис помошнике, все отрабатывает без ошибок, но в ответ получаю описание данного сервиса, а не ответ, который описан в обработчике сервиса. Что делать, я уже и в программе XMLSpy тестировал - тут работает нормально, ответ получается. | |||
| 1
    
        andr_hav 15.07.13✎ 11:15 | 
        текст запроса в файле с выдуманными значениями параметрами, но тогда все равно должен быть ответ об ошибке:
  <?xml version="1.0" encoding="UTF-8"?> <CallTSD> <Command>команда</Command> <Data>дата</Data> </CallTSD> | |||
| 2
    
        acsent 15.07.13✎ 11:17 | 
        в 1с есть же методы работы с веб сервисами     | |||
| 3
    
        andr_hav 15.07.13✎ 11:24 | 
        я использовал метод:
  //Определение = Новый WSОпределения("http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws?wsdl","tsd","tsd"); // //Прокси = Новый WSПрокси(Определение,"http://3pl.spsr.ru/","TSD","TSDSoap"); //Прокси.Пользователь = "tsd"; //Прокси.Пароль = "tsd"; //СтрокаОтвета = Прокси.CallTSD(КомандаТСД,ДанныеКоманды); но он маленький объем данных пересылает, а мен нужно что б по больше можно было отправлять. | |||
| 4
    
        acsent 15.07.13✎ 11:34 | 
        используй фиддлер для проверки     | |||
| 5
    
        andr_hav 15.07.13✎ 11:41 | 
        у меня ответ по запросу не приходит, только в 1С, в других программах тестирования и отладки, ответ от сервиса приходит нормально, вот если бы у кого нибуть был рабочий код, пусть даже к своему web-сервису     | |||
| 6
    
        acsent 15.07.13✎ 11:44 | 
        (5) значит 1с посылает что-то не то. см (4)     | |||
| 7
    
        andr_hav 15.07.13✎ 11:56 | 
        1с получает файл описания, такой же, если бы  я набрал в брауpере
  http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws?wsdl, то получил бы XML, я вообще не представляю что еще можно исправить | |||
| 8
    
        Infsams654 15.07.13✎ 12:05 | 
        (0) по-моему ОтправитьДляОбработки не ждет получение ответа.
  Вот если в отладчике после Соединение.ОтправитьДляОбработки(ИмяФайлаЗапроса, РесурсНаСервере, ФайлРезультата); остановиться и подождать несколько секунд (или минут, в зависимости от объема пердаваемых данных), то можно и нормального ответа дождаться... | |||
| 9
    
        acsent 15.07.13✎ 12:13 | 
        (7) не хочешь отлаживать - ну тогда сиди и мучайся     | |||
| 10
    
        acsent 15.07.13✎ 12:14 | 
        (8) очень даже ждет     | |||
| 11
    
        andr_hav 15.07.13✎ 12:19 | 
        ОтправитьДляОбработки возвращает ответ и записывает в файл "ФайлРезультата", отлаживать сейчас начну, только скачаю ПО     | |||
| 12
    
        Serginio1 15.07.13✎ 12:39 | ||||
| 13
    
        andr_hav 15.07.13✎ 14:19 | 
        сделал как посоветовали в (79), все отработало без ошибок, запросило авторизацию ввел пароль и логин, смотрю файл овета, а там:
  <?xml version="1.0" encoding="UTF-8" ?> - <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://3pl.spsr.ru/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://3pl.spsr.ru/" name="TSD" targetNamespace="http://3pl.spsr.ru/"> - <types> - <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="http://3pl.spsr.ru/" targetNamespace="http://3pl.spsr.ru/" elementFormDefault="qualified"> - <xs:element name="CallTSD"> - <xs:complexType> - <xs:sequence> <xs:element name="Command" type="xs:string" /> <xs:element name="Data" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="CallTSDResponse"> - <xs:complexType> - <xs:sequence> <xs:element name="return" type="xs:string" nillable="true" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </types> - <message name="CallTSDRequestMessage"> <part name="parameters" element="tns:CallTSD" /> </message> - <message name="CallTSDResponseMessage"> <part name="parameters" element="tns:CallTSDResponse" /> </message> - <portType name="TSDPortType"> - <operation name="CallTSD"> <input message="tns:CallTSDRequestMessage" /> <output message="tns:CallTSDResponseMessage" /> </operation> </portType> - <binding name="TSDSoapBinding" type="tns:TSDPortType"> <soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="CallTSD"> <soapbind:operation style="document" soapAction="http://3pl.spsr.ru/#TSD:CallTSD" /> - <input> <soapbind:body use="literal" /> </input> - <output> <soapbind:body use="literal" /> </output> </operation> </binding> - <binding name="TSDSoap12Binding" type="tns:TSDPortType"> <soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="CallTSD"> <soap12bind:operation style="document" soapAction="http://3pl.spsr.ru/#TSD:CallTSD" /> - <input> <soap12bind:body use="literal" /> </input> - <output> <soap12bind:body use="literal" /> </output> </operation> </binding> - <service name="TSD"> - <port name="TSDSoap" binding="tns:TSDSoapBinding"> - <documentation> <wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1" /> </documentation> <soapbind:address location="http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws" /> </port> - <port name="TSDSoap12" binding="tns:TSDSoap12Binding"> <soap12bind:address location="http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws" /> </port> </service> </definitions> то есть, приходит описание сервиса, а мнt нужен ответ. Почему так происходит я не пойму, ответа в интернете не нахожу, может на сервер сервиса что-то настраивать-разрешать нужно? | |||
| 14
    
        Infsams654 15.07.13✎ 14:23 | 
        (10) а я говорю, не ждет... Проверял, есть даже в 1С пост на ошибку.     | |||
| 15
    
        Infsams654 15.07.13✎ 14:28 | 
        (13) остановись в отладчике как написано в (8) и подожди. Потом посмотри ответ     | |||
| 16
    
        Serginio1 15.07.13✎ 14:28 | 
        Тебе приходит WSDL в не нем есть секция  Service
  судя по ней у тебя адрес такой hostName="TSDSoap"; urlAddress="http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws"; | |||
| 17
    
        Serginio1 15.07.13✎ 14:41 | 
        Ну и в сам опен можешь передавать юзера и пароль
  http://msdn.microsoft.com/en-us/library/windows/desktop/ms757849(v=vs.85).aspx | |||
| 18
    
        andr_hav 15.07.13✎ 15:56 | 
        Вообщем ни чего не получается
  меняю hostName="TSDSoap"; urlAddress="http://upr.softrust.ru/TechosilaDrTSD/ws/tsd.1cws"; пишет server error, | |||
| 19
    
        Serginio1 15.07.13✎ 16:02 | 
        (18) На каком этапе? Юзер и пароль устанавливаешь при соединении?
  xmlHttp.OPEN ("POST", urlAddress, False, User,Password); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |