在Xamarin.Forms

时间:2017-03-07 15:07:59

标签: soap header wsdl xamarin.forms

我正在尝试从SOAP Web服务获取数据。我能够从测试服务中获取数据。就像这样:

var service = new CurrencyConvertor();
var f = service.ConversionRate(Currency.EUR, Currency.USD);

我将该服务添加为' Web Reference'进入Droid-Project - 与代理类一起使用。

现在我遇到了一个新的网络服务。问题是:我需要提供一个安全标题,我真的无法使用Xamarin。已经尝试在PCL中使用,但我也不能添加Header。

web服务报头:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
      <s:Header>
        <Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
          <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:Username>UserName</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
          </wsse:UsernameToken>
        </Security>
      </s:Header>
    ...

该请求适用于SoapUI。

1 个答案:

答案 0 :(得分:0)

通过创建第二个wcf服务解决它,消耗上面的那个。在新的一个中,我使用in-code authentification,然后使用security-header调用一个。只有对我有用的解决方案。