Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ответ сервера.SOAP, знатокам SOAP 
:(
    Опции темы
PiyodaiSiyo
Дата 8.9.2011, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет с  j2me и android  форумов!

 Вероятнее всего мне следует обратится сюда.
  Так уж получилось что я поверхностно знаком с SOAP. Мне нужно взаимодействие телефона  с .net  сервером.  
ГДЕ ОШИБКА В ЗАПРОСЕ?
(служба aspx)
НАШ ЗАПРОС:

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://www.w3.org/2001/12/soap-encoding" xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  <Login xmlns="http://tempuri.org/" id="o0" SOAP-ENC:root="1">
   <userName xmlns="" xsi:type="xsd:intSport">test</userName>
   <password xmlns="" xsi:type="xsd:intSport">test</password>
   <version xmlns="" xsi:type="xsd:decimal">1.011</version>
   <intSport xmlns="" xsi:type="xsd:unsignedByte">1</intSport>
   <sessionID xmlns="" xsi:type="xsd:guid"> </sessionID>
   <gameTitle xmlns="" xsi:type="xsd:intSport">spartak-dinamo</gameTitle>
   <scores xmlns="" xsi:type="xsd:base64Binary">1234</scores>
  </Login>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
     

И ОТВЕТ СЕРВЕРА
 


<?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><soap:Fault><faultcode>soap:Client</faultcode><faultstring>System.Web.Services.Protocols.SoapException: Сервер не распознал значение заголовка HTTP SOAPAction: .
   в System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
   в System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
   в System.Web.Services.Protocols.SoapServerProtocol.Initialize()
   в System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response)
   в System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp; abortProcessing)</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>



непонятно чего неправильного в заголовке? и вообще что есть заголовок в SOAP сообщении.

Добавлено через 2 минуты и 53 секунды
ну или предположения.....

PM MAIL   Вверх
jonie
Дата 14.9.2011, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



ну вы не заполняете SOAPAction в HTTP заголовке (он у вас вообще не приведен). Подробнее в описании SOAP: http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528

Попросту надо HTTP (!) заголовок. HTTP, напомню, к XML (что вы привели) никакого отношения не имеет.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
PiyodaiSiyo
Дата 17.9.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



в яблочко! Правда поскольку долго никто не отвечал сам докопался.Ну все равно сп...
просьба модератору поставить "+"  jonie

А может ли кто сказать в методе лог ин резалт должна показаться не 7ка а 4ка

1 нет такого пользователя
2 неправильный пароль
3 не залогинен (это код ошибки не для этого метода)
4 нет привязанных к вам игр
5 неизвестная ошибка
6 уже залогинен
7 старая версия клиента

 в ответе
<?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><LoginResponse xmlns="http://tempuri.org/"><LoginResult>7</LoginResult><intSport>0</intSport><sessionID>00000000-0000-0000-0000-000000000000</sessionID></LoginResponse></soap:Body></soap:Envelope>


а вот пример возможного запроса и ответа скопированный из той самой службы
SOAP 1.2

В следующем примере показаны запрос и ответ SOAP 1,2. Вместо элементов-заполнителей следует подставить фактические значения.
POST /blabla/WebServiceComment.asmx HTTP/1.1
Host: blabla.org.uz
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <Login xmlns="http://tempuri.org/">
      <userName>string</userName>
      <password>string</password>
      <version>decimal</version>
      <intSport>unsignedByte</intSport>
      <sessionID>guid</sessionID>
      <gameTitle>string</gameTitle>
      <scores>base64Binary</scores>
    </Login>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <LoginResponse xmlns="http://tempuri.org/">
      <LoginResult>unsignedByte</LoginResult>
      <intSport>unsignedByte</intSport>
      <sessionID>guid</sessionID>
      <gameTitle>string</gameTitle>
      <scores>base64Binary</scores>
    </LoginResponse>
  </soap12:Body>
</soap12:Envelope>


версия 1.011 самая свежая . О какой устаревшей версии идет речь?
PM MAIL   Вверх
PiyodaiSiyo
Дата 17.9.2011, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пардон....
В xml что под словами  " в ответе" используется версия соап 1.0 или 1.1 если поместить 1.2 выдает следующее:
<?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:Header><soap12:Upgrade xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:SupportedEnvelope qname="soap:Envelope" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" /><soap12:SupportedEnvelope qname="soap12:Envelope" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" /></soap12:Upgrade></soap:Header><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>System.Web.Services.Protocols.SoapException:Возможно несоответствие версии SOAP: непредвиденное пространство имен конверта http://www.w3.org/2001/12/soap-envelope.Ожидается http://schemas.xmlsoap.org/soap/envelope/.
   РІ System.Web.Services.Protocols.SoapServerProtocol.CheckHelperVersion()
   РІ System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
   РІ System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>


А вот кстати пример из их доков для соап 1.1

В следующем примере показаны запрос и ответ SOAP 1.1. Вместо элементов-заполнителей следует подставить фактические значения.
POST /blabla/WebServiceComment.asmx HTTP/1.1
Host: blabla.org.uz
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Login"

<?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>
    <Login xmlns="http://tempuri.org/">
      <userName>string</userName>
      <password>string</password>
      <version>decimal</version>
      <intSport>unsignedByte</intSport>
      <sessionID>guid</sessionID>
      <gameTitle>string</gameTitle>
      <scores>base64Binary</scores>
    </Login>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?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>
    <LoginResponse xmlns="http://tempuri.org/">
      <LoginResult>unsignedByte</LoginResult>
      <intSport>unsignedByte</intSport>
      <sessionID>guid</sessionID>
      <gameTitle>string</gameTitle>
      <scores>base64Binary</scores>
    </LoginResponse>
  </soap:Body>
</soap:Envelope>



если соап 1.1 и 1.0 устарела тогда почему она в примерах ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




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


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

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