:: Visual Foxpro, Foxpro for DOS
Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
Добрый день.
Не обрабатывается удаленный запрос через SOAP.
При запуске данного кода свойство ohttp.readyState всегда равно 1.
При запуске через VFP9 отрабатывает нормально.
Подскажите в какую сторону копать. Значительное увеличение переменной lnTimeWaitExec не помогает.

ohttp = CREATEOBJECT("Msxml2.XMLHTTP")
lnTimeWaitExec = 5000
lcInitUrl = [http://…]
ohttp.open("GET",lcInitUrl, .T.)
*
ohttp.setRequestHeader("Content-Type", "text/xml")
ohttp.setRequestHeader("Cache-Control", "no-cache")
ohttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
ohttp.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2096.0 Safari/537.36")
*
ohttp.Send(Null)
If ohttp.readyState <> 4
lnCurDT = Datetime()
Do While .T.
If ohttp.readyState = 4
Exit
Endif
lnSec = Datetime()-lnCurDT
If lnSec*1000 > lnTimeWaitExec
Exit
Endif
Enddo
Endif
If ohttp.readyState = 4 Then &&



Исправлено 1 раз(а). Последнее : OlegA, 12.03.18 09:09
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
1. 5000 - это 5 сек, может мало?
2. ohttp = CREATEOBJECT("Msxml2.XMLHTTP") oXML2DOMD4 = * - какая-то помеха?
3. При запуске через VFP9 - это как? по шагам?
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
of63
1. Увеличивал до 30 сек. не помогло
2. Да мусор при копирование, убрал
3. Выделял весь код и запускал.
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Вроде окружение проги не может испортить код, нечего портить...
Кстати, может повлияет: Send(Null) --> Send(0)
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
of63
Вроде окружение проги не может испортить код, нечего портить...
Кстати, может повлияет: Send(Null) --> Send(0)
Не помогло ((
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
По шагам пройди, внутри рабочей проги, мало ли что, например lcInitUrl = [http://…] - адрес может не тот создался, там бывает символ &, также URL-кодирование...
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
of63
По шагам пройди, внутри рабочей проги, мало ли что, например lcInitUrl = [http://…] - адрес может не тот создался, там бывает символ &, также URL-кодирование...
В первую очередь об этом подумал, проверял url формируется корректно.
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Поставь другой, заведомо хороший адрес, чтобы проверить, только этот адрес не работает, или вообще все. Ну, может эта прога в запрещенных для обмена в интернете...
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
Адрес не инетовский, а в корпоративный сети. Если бы у пользователей был бы прямой доступ к этому адресу, то не стал бы заморачиватmся через SOAP.
Для проверки у меня других адресов нет. Сервак где установлен SOAP выход в инет не имеет.
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
SOAP пока не причем, такого слова нет в коде Просто GEt-запрос к серверу, и он из VFP работает. Все же факт возможности обмена с сервером из рабочей проги надо как-то проверить...
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
OlegA

Сообщений: 536
Откуда: Иркутск
Дата регистрации: 22.06.2001
Код отрабатывал именно на самом сервере, так что обмен идет.
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Начнём с того что ты не даёшь никакого продыху процессу. Нельзя крутить бесконечный цикл и ожидать при том что что-то снаружи "пробьётся". Да, есть _VFP.AutoYield, но всё равно ТАК ДЕЛАТЬ НЕ НАДО.

Надо поместить внутрь цикла ожидания DOEVENTS а для надёжности ещё и INKEY(0.1) или апишный Sleep(100) - отдай процессорное время, сделай паузу чтобы компонента могла нормально работать в фоне...

Альтернатива - убрать вообще цикл и работать по событиям - есть у этого компонента onreadystatechange. Правда подписываться на него придётся через EVENTHANDLER. Впрочем, пример на форуме имеется.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
Димон71
Автор

Сообщений: 80
Дата регистрации: 08.02.2005
А вот так? У тебя сейчас выполняется асинхронный запрос к серверу. Попробуй синхронный ohttp.open("GET",lcInitUrl,.F.)
Ratings: 0 negative/0 positive
Re: Проблемма с объектом Msxml2.XMLHTTP с вызовом через SOAP
Димон71
Автор

Сообщений: 80
Дата регистрации: 08.02.2005
В догонку. Точно ли SOAP работает через GET? И как ты передаешь тело SOAP запроса?
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика