Использование веб-сервисов с Windows Phone 7 и добавление заголовков SOAP - PullRequest
1 голос
/ 10 февраля 2012

У меня есть метод веб-сервиса, который описан следующим образом:

POST /servis.asmx HTTP/1.1
Host: webservice.myproject.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/MyMethod"

<?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:Header>
    <AuthHeader xmlns="http://tempuri.org/">
      <Username>string</Username>
      <Password>string</Password>
    </AuthHeader>
  </soap:Header>
  <soap:Body>
    <MyMethod xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>

И я пытаюсь разработать приложение для Windows Phone 7, которое использует этот метод веб-сервиса. В Visual Studio я добавил ссылку на сервис в свой проект. Я создал объект клиента Webservice, как это делал на платформе .net, и создал объект AuthHeader и установил его имя пользователя и пароль. Следующий код не мой код, но он похож на мой:

        AuthWebService.WebService webService = new AuthWebService.WebService();
        AuthWebService.AuthHeader authentication = new AuthWebService.AuthHeader();

        authentication.Username = "test";
        authentication.Password = "test";
        webService.AuthHeaderValue = authentication;

Но когда я пытаюсь установить заголовки служб, используя следующую строку кода:

webService.AuthHeaderValue = authentication;

это не работает. Объект webservice не имеет свойства AuthHeaderValue. Я пытался сделать это в настольном приложении или веб-приложении, но в приложении Windows Phone 7 этого не произошло.

У кого-нибудь есть предложения по этому вопросу? Спасибо, пока.

Ответы [ 2 ]

1 голос
/ 29 мая 2012

Это решение моего друга для этой проблемы, и оно работает для меня:

public class _ServiceCredential
{
    [XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.None)] [DataMember(Order = 2)] 
    public string Password; 
    [DataMember(Order = 1)] 
    [XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.None)] 
    public string Username;
}

А полный пост в блоге здесь: Веб-сервис WP7 SOAP с пользовательскими заголовками

0 голосов
/ 11 февраля 2012

У меня была похожая проблема, когда я пытался связаться со службой SOAP.Думаю, проблема в версии Silverlight в WP7.Вы пытались ссылаться на веб-сервис в проекте Windows Form?В моем случае не было проблем с добавлением моего веб-сервиса SOAP в проект Windows Form, но когда я добавил его в проект WP7, не все свойства и методы службы SOAP были доступны.В конце концов мне пришлось написать свой собственный класс веб-сервиса SOPA для связи с сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...