Я пытаюсь подключиться к веб-сервису из моего проекта xcode.Моя установка работает с вызывающими методами и возвращаемыми значениями gettin, но не тогда, когда я пытаюсь передать аргумент службе.Вот мой код:
NSString *soapMsg = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <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\n>
<TestArgMethod xmlns=\"http://tempuri.org\">\n
<argument>argument1</argument>
</TestArgMethod>
</soap:Body>
</soap:Envelope>";
NSURL *url = [NSURL URLWithString:@"http://myserver/myservice.asmx"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMsg length]];
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://tempuri.org/TestArgMethod" forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
NSLog(soapMsg);
if (conn) {
webData = [[NSMutableData data] retain];
}
, а служба, написанная на C #, такова:
[Webmethod]
public string TestArgMethod(string argument) {
return argument;
}
Это то, чего мне не хватает в <argument>argument1</argument>
?Служба не распознает, что аргумент отправлен, только то, что метод был вызван.При передаче таких аргументов нужно ли их по-разному кодировать, чтобы указать, что это строка?