Microsoft WCF和iOS之间的WS-ReliableMessaging互操作性

时间:2014-05-21 08:28:07

标签: ios objective-c wcf wshttpbinding ws-reliablemessaging

如何从iOS objective-C代码调用WCF wsHttpBinding启用可靠会话的Web服务..我写了一个用于访问服务的通用代码,但我收到此错误"操作http://tempuri.org/MyService/AuthneticateUser此端点不支持此功能。此端点仅处理WS-ReliableMessaging二月2005消息"。

这是我的代码

<NSString *stringAuthenticateUsr=@"<s:Envelope xmlns:a=\"http://www.w3.org/2005/08/addressing\" xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\">
  <s:Header>
   <a:Action s:mustUnderstand=\"1\">tempuri.org/MyService/AuthneticateUser
       </… xmlns:h=\"tempuri.org\">1</h:ApplicationID>
         <h:DeviceID xmlns:h=\"tempuri.org\">1</h:DeviceID>
         <h:Password xmlns:h=\"tempuri.org\">Password1</h:Password>
        <a:MessageID>urn:uuid:041b‌​65a7-4ab2-4da9-ba3b-05d5cccfe074</a:MessageID> 
        <a:ReplyTo><a:Address>w3.org/2005/08/addressing/anonymous</a:Address>
      </… s:mustUnderstand=\"1\">MySvcUrl
   </a:To>
  </s:Header>
  <s:Body />
</s:Envelope>";

NSURL * url = [NSURL URLWithString:MySvcUrl];

NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:0];
[theRequest setCachePolicy:NSURLCacheStorageNotAllowed];
NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[stringAuthenticateUsr length]];
[theRequest addValue: @"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://tempuri.org/MyService/AuthneticateUser" forHTTPHeaderField:@"Soapaction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPShouldHandleCookies:YES];
[theRequest setHTTPBody: [stringAuthenticateUsr dataUsingEncoding:NSUTF8StringEncoding]];

NSHTTPURLResponse *回复;     NSError * error = nil;     NSData * resultData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&amp; response error:&amp; error];     NSString * result = [[NSString alloc] initWithData:resultData encoding:NSUTF8StringEncoding];     的NSLog(@&#34;结果 - %@&#34;,结果);

0 个答案:

没有答案