Parappattu
Parappattu

Reputation: 41

WS-ReliableMessaging interoperability between Microsoft WCF and iOS

How to call a WCF wsHttpBinding reliable-session enabled web service from iOS objective-C code.. I Wrote a general code for accessing the service, but I am getting this error "The action http://tempuri.org/MyService/AuthneticateUser is not supported by this endpoint. Only WS-ReliableMessaging February 2005 messages are processed by this endpoint".

Here my code

<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* response; NSError* error = nil; NSData* resultData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; NSString *result = [[NSString alloc]initWithData:resultData encoding:NSUTF8StringEncoding]; NSLog(@"result--%@",result);

Upvotes: 0

Views: 379

Answers (0)

Related Questions