JanusAT.asmx
От: Аноним  
Дата: 11.09.06 07:29
Оценка:
Это Мамут Не выдержал. Я тут играюсь с сервисом потихоньку...

Отсылаю следующий запрос:
<?xml  version="1.0"  encoding="utf-8" ?>
    <soap:Envelope 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

        <soap:Body>
            <GetForumList xmnls="http://rsdn.ru/Janus/">
                <forumRequest>
                    <userName>dmitriid</userName>
                    <password>***</password>
                </forumRequest>
            </GetForumList>
        </soap:Body>
    </soap:Envelope>


Получаю ответ, что, мол "Server was unable to process request. ---> Object reference not set to an instance of an object"

Я так понимаю — это проблемы сервера . Потому что ошибиться в запросе я ну никак не мог
Re: JanusAT.asmx
От: BkmzBIN Беларусь  
Дата: 11.09.06 10:00
Оценка: 22 (1)
А>
А>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
А>        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
А>        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

А>        <soap:Body>
А>            <GetForumList xmnls="http://rsdn.ru/Janus/">
А>                <forumRequest>
А>


может и не в этом дело, но сразу бросилось в глаза.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: JanusAT.asmx
От: Аноним  
Дата: 11.09.06 11:05
Оценка:
А>>
А>>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
А>>        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
А>>        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

А>>        <soap:Body>
А>>            <GetForumList xmnls="http://rsdn.ru/Janus/">
А>>                <forumRequest>
А>>


BBI>может и не в этом дело, но сразу бросилось в глаза.


Ага, спасибо (оценка за сообщение появится после 15-го, когда я из добровольного бана выйду ).

Легче от этого, правда, не стало Все та же ошибка, "Server was unable to process request. ---> Object reference not set to an instance of an object"
Re: К вопросу о сервисе...
От: Аноним  
Дата: 11.09.06 12:14
Оценка:
Это опять Мамут

Эээ. Хм.

Ethereal показал мне, что при синхронизации с форумами Янус отсылает следующее сообщение:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <Sync xmlns="http://tempuri.org/">
            <req>
                <subscribedForums>
                    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Table">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="id" type="xs:int" minOccurs="0"/>
                                                <xs:element name="lastsync" type="xs:int" minOccurs="0"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <NewDataSet xmlns="">
                            <Table diffgr:id="Table1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
                                <id>0</id>
                                <lastsync>1</lastsync>
                            </Table>
                        </NewDataSet>
                    </diffgr:diffgram>
                </subscribedForums>
                <ratingRowVersion>AAAAAAAIAbE=</ratingRowVersion>
                <forumRowVersion>AAAAAAAIAc8=</forumRowVersion>
                <userName>dmitriid</userName>
                <password>***</password>
                <maxOutput>0</maxOutput>
            </req>
        </Sync>
    </soap:Body>
</soap:Envelope>


А это очень не похоже на, собственно, описание сервиса ,
которым я руководствовался
Автор:
Дата: 11.09.06
.

Может, это запрос GetNewData (согласно описанию сервиса)?
Во всяком случае, издалека на него похоже. Но тогда subscribedForums не cовсем похоже на
ArrayOfRequestForumInfo A? прада, может просто не знаю всех особенностей реализации
сервисов под .NET

И тогда не понял Если я просто хочу получить список форумов, мне нельзя
пользоваться GetForumList? А надо составлять весьма монструознообразный GetNewData?
И откуда появились на пустой базе ratingRowVersion и forumRowVersion?

В общем, помогите, а А я вам клиента на Эрланге наваяю
Re[2]: К вопросу о сервисе...
От: akasoft Россия  
Дата: 11.09.06 12:45
Оценка: 33 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Это опять Мамут


Не верю! Настоящий Мамут бы воспользовался поиском!!!

А>Ethereal показал мне, что при синхронизации с форумами Янус отсылает следующее сообщение:


Янус работает со старым сервисом, без "AT". Там протокол другой. Поэтому все последующие выводы неверны.

А>И откуда появились на пустой базе ratingRowVersion и forumRowVersion?


От балды, == 0. Их потом сервис вернёт, тогда-то их нужно будет запомнить и подсовывать.

А>В общем, помогите, а А я вам клиента на Эрланге наваяю


Почему твой исходный пакет не проходит — не знаю. М.б., ты некорректно формируешь не SOAP-пакет, а сам HTTP-запрос. Тем же Этрилом его посмотри, может не так что. Ещё был вариант делать имени-паролю Base64 из принципа, но по-моему Мерл делал без этого. Ещё для сервиса требуется поддержка coockies.
... << RSDN@Home 1.2.0 alpha rev. 655>> SQLE 2005
Re[3]: К вопросу о сервисе...
От: Аноним  
Дата: 11.09.06 13:01
Оценка:
А>>Это опять Мамут

A>Не верю! Настоящий Мамут бы воспользовался поиском!!!


Зуб даю

А>>Ethereal показал мне, что при синхронизации с форумами Янус отсылает следующее сообщение:


A>Янус работает со старым сервисом, без "AT". Там протокол другой. Поэтому все последующие выводы неверны.


Ага, понятно.

А>>И откуда появились на пустой базе ratingRowVersion и forumRowVersion?


A>От балды, == 0. Их потом сервис вернёт, тогда-то их нужно будет запомнить и подсовывать.


Да действительно, это — в поиск

А>>В общем, помогите, а А я вам клиента на Эрланге наваяю


A>Почему твой исходный пакет не проходит — не знаю. М.б., ты некорректно формируешь не SOAP-пакет, а сам HTTP-запрос. Тем же Этрилом его посмотри, может не так что. Ещё был вариант делать имени-паролю Base64 из принципа, но по-моему Мерл делал без этого. Ещё для сервиса требуется поддержка coockies.


А, вот она, по-моему, где собака порылась.

Да! Да! Именно здесь она и порылась!! Ура!!! Я получил список форумов!!!

http:set_options([{cookies, enabled}]) — это наше все



Ну, теперь буду потихоньку ковырять дальше... Вoт она, щастя!

(оценка за помощь, как я уже говорил
Автор:
Дата: 11.09.06
, будет после 15го Заодно стресс-тест януса получится У меня таких оценок много набралось )
Re: JanusAT.asmx
От: Mamut Швеция http://dmitriid.com
Дата: 15.09.06 14:35
Оценка:
"Мы пойдем другим путем"
"Мы наш, мы новый мир построим"



В общем, http://code.google.com/p/orcas

Эрланг я копаю очень потихоньку. Да и бан мой только сегодня в 17:17 по Москве закончился. Поэтому остальные функции я буду добалять меедленно. Но верно

На данный момент в репозитории есть только один тестовый файл, на котором я тренируюсь. Как на кошках а также:
trunk
  |
     - includes
          - janus.hrl - описания структур на основе http://rsdn.ru/Forum/?mid=1301787
     - src
          - test.erl  - собственно тестовый файлик
     - varia
          - response.xml - ответ на запрос GetForumList, чтобы оттачивать 
                                 работу с XML :)
     - ebin
          - test.beam    - скомпилированный test.erl


На данном этапе код только и может, что получить список форумов с нового сервиса КЫВТа

В ближайших планах:
— добавить не требующие усиленных теложвижений запросы типа GetNewData или GetTopicByMessage
— добавить какую-никакую базу данных (как никакую? Mnesia!)

На это у меня уйдет, по предварительным расчетам, неделя-другая

ЗЫ. Эрланг рулит
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
Re[2]: JanusAT.asmx
От: 0rc Украина  
Дата: 18.09.06 12:49
Оценка:
Здравствуйте, Mamut, Вы писали:

M>ЗЫ. Эрланг рулит


Не спорю, а что означает незатейливое название проекта?
... << RSDN@Home 1.2.0 alpha rev. 648>>
Re[3]: JanusAT.asmx
От: Mamut Швеция http://dmitriid.com
Дата: 18.09.06 13:15
Оценка:
M>>ЗЫ. Эрланг рулит

0rc>Не спорю, а что означает незатейливое название проекта?


http://sheridan.stavcom.ru/rsdn/index.php?n=Comments.Main-HomePage

Мне кажется, что ни RSDN@Linux ни Яnux не отражают кроссплатформенности проекта. Кстати, почему я назвал Orcas? Потому что Janux на sf.net уже был, а другие названия в голову не лезли

— Orcas это от какого слова? От Орка?
— Я, когда пытался зарегить проект на SF.net, столкнулся с тем, что Janux, например, занят. Потом в голову взбрело слово orcas, от английского слова orca, что значит "касатка". Даже рисунок под это дело нашел Правда, Шеридан его уже заменил


Пусть будут касатки Все равно название пустует
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
Re[3]: К вопросу о сервисе...
От: Зверёк Харьковский  
Дата: 21.09.06 00:41
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Ещё для сервиса требуется поддержка coockies.


А зачем, к слову?
FAQ — це мiй ай-кью!
Re[4]: К вопросу о сервисе...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.09.06 08:29
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

A>>Ещё для сервиса требуется поддержка coockies.


ЗХ>А зачем, к слову?


Для поддержки сессий. Впрочем, в 2.0, кажется, обходятся уже без них.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[4]: К вопросу о сервисе...
От: akasoft Россия  
Дата: 21.09.06 08:37
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>А зачем, к слову?


Таким способом Мерл блокирует отправку дубликатов сообщений. Была у нас как-то проблема дублей от Януса. Решить её, конечно, можно разными способами. Способ с куками сработает одинаково для Веб и Януса.

При вызове первого метода сервер задаёт куку, и если при последующих вызовах ему эту куку предоставят, то дубли вызовов методов можно будет отследить и отфильтровать. В общем, всё как в настоящем веб, см. протокол HTTP.

Ну а если вызывающий нагло не даёт куку, хотя должен был, то его тоже фильтруют, за невоспитанность.
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
Re[5]: К вопросу о сервисе...
От: Зверёк Харьковский  
Дата: 21.09.06 08:37
Оценка:
Здравствуйте, AndrewVK, Вы писали:

A>>>Ещё для сервиса требуется поддержка coockies.


ЗХ>>А зачем, к слову?


AVK>Для поддержки сессий.


Не, зачем в принципе куки изобретены, я в курсе. Имелось в виду "зачем куки, если все равно в каждом запросе надо логин-пароль передавать".

AVK>Впрочем, в 2.0, кажется, обходятся уже без них.


Ага. А если к JanusAT.asmx обращаться клиентом без поддержки куков — что будет?..
FAQ — це мiй ай-кью!
Re[6]: К вопросу о сервисе...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.09.06 08:49
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Не, зачем в принципе куки изобретены, я в курсе. Имелось в виду "зачем куки, если все равно в каждом запросе надо логин-пароль передавать".


Ты думаешь, логин-пароль это единственное, что имеет смысл хранить в сессии?

ЗХ>Ага. А если к JanusAT.asmx обращаться клиентом без поддержки куков — что будет?..


Не будет работать пост.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[6]: К вопросу о сервисе...
От: akasoft Россия  
Дата: 21.09.06 09:58
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Не, зачем в принципе куки изобретены, я в курсе. Имелось в виду "зачем куки, если все равно в каждом запросе надо логин-пароль передавать".


Сразу вспомнился анекдот с моралью, что "только программист может дать одинаково точный и бесполезный ответ".
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
Еще по сервису...
От: Mamut Швеция http://dmitriid.com
Дата: 21.09.06 12:23
Оценка:
Является ли такой запрос нормальным к сервису Януса, или все должно быть согласно описаниям в GetForumList?

<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
    <env:Body>
        <p:GetForumList xmlns:p="http://rsdn.ru/Janus/">
            <forumRequest>
                <userName>dmitriid</userName>
                <password>***</password>
            </forumRequest>
        </p:GetForumList>
    </env:Body>
</env:Envelope>


Это у меня так новая версия erlsoap генерит...
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
Re: Еще по сервису...
От: akasoft Россия  
Дата: 21.09.06 13:43
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Является ли такой запрос нормальным к сервису Януса, или все должно быть согласно описаниям в

M> GetForumList?

Честно говоря — не знаю. Полагаю, что вариант, приведенный по ссылке выше, точно сработает. Что-то подсказывает мне, что там не зря пространство имён soap указано, и ссылка на него. А env — некое другое пространство, с др. правилам там, потому может быть в пролёте.

А что мешает проверить этот запрос? Или ты уже проверил, и он не работает?
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
Re[2]: Еще по сервису...
От: Mamut Швеция http://dmitriid.com
Дата: 21.09.06 14:15
Оценка:
M>>Является ли такой запрос нормальным к сервису Януса, или все должно быть согласно описаниям в
M>> GetForumList?

A>Честно говоря — не знаю. Полагаю, что вариант, приведенный по ссылке выше, точно сработает. Что-то подсказывает мне, что там не зря пространство имён soap указано, и ссылка на него. А env — некое другое пространство, с др. правилам там, потому может быть в пролёте.


A>А что мешает проверить этот запрос? Или ты уже проверил, и он не работает?




Оказалось следующее:
Не работает:
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
    <env:Body>
        <p:GetForumList xmlns:p="http://rsdn.ru/Janus/">
            <p:forumRequest>
                <p:userName>dmitriid</p:userName>
                <p:password>***</p:password>
            </p:forumRequest>
        </p:GetForumList>
    </env:Body>
</env:Envelope>


Не работает:

<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Body>
        <p:GetForumList xmlns:p="http://rsdn.ru/Janus/">
            <p:forumRequest>
                <p:userName>dmitriid</p:userName>
                <p:password>***</p:password>
            </p:forumRequest>
        </p:GetForumList>
    </env:Body>
</env:Envelope>


Работает:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <p:GetForumList xmlns:p="http://rsdn.ru/Janus/">
            <p:forumRequest>
                <p:userName>dmitriid</p:userName>
                <p:password>***</p:password>
            </p:forumRequest>
        </p:GetForumList>
    </soap:Body>
</soap:Envelope>


Блин. Как не хочется хакать erlsoap + erlsom. Буду, видимо, ручками. Благо, все для этого уже есть...

ЗЫ. Кто тут говорил, что SOAP — это круто, интероперабильно и транспарентно? Ыыыы *пошел рыдать и биться в истерике*
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
Re[3]: Еще по сервису...
От: Аноним  
Дата: 21.09.06 14:28
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Является ли такой запрос нормальным к сервису Януса, или все должно быть согласно описаниям в

M>>> GetForumList?

Все веселеей.

──────< 21-09-2006 21:26:53 >────────────────────────────────────
root@call2ru:~# telnet rsdn.ru 80
Trying 194.154.75.207...
Connected to rsdn.ru.
Escape character is '^]'.
POST /ws/JanusAT.asmx HTTP/1.1
Host: rsdn.ru
Content-Type: text/xml; charset=utf-8
Content-Length: 419
SOAPAction: "http://rsdn.ru/Janus/GetForumList"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetForumList xmlns="http://rsdn.ru/Janus/">
<forumRequest>
<userName>datacompboy</userName>
<password>xxxxxx</password>
</forumRequest>
</GetForumList>
</soap:Body>
</soap:Envelope>
HTTP/1.1 400 Bad Request
Connection: close
Date: Thu, 21 Sep 2006 14:26:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: .ASPXANONYMOUS=EPDI6Bz1xgEkAAAAY2EwYjQ5M2YtZTdjMC00ZDMwLThmZTMtMWU1MTY0OTMxOWI3U1kSjamJj2bpcYlFtfZQluGPZGY1; domain=rsdn.ru; expires=Sat, 21-Oct-2006 14:26:34 GMT; path=/; HttpOnly
Cache-Control: private
Content-Type: text/html

Connection closed by foreign host.
──────────────────────────────────────────────────────────────────

что я делаю не так?!
Re[4]: Еще по сервису...
От: akasoft Россия  
Дата: 21.09.06 16:11
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>что я делаю не так?!


Могу только предположить, что тебе нужно выполнить операцию Check, получить куку, и выдать её при последующих вызовах.

Ну и ещё интересна кука сама по себе — то что ".ASPXANONYMOUS" и то, что она пытается себя сбросить, выдав дату со сдвигом назад на 7 часов.

М.б., авторизация не прошла?
... << RSDN@Home 1.2.0 alpha rev. 655>> SQL Express 2005
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.