Передача аргумента на веб-сервис с iPhone не работает - PullRequest
0 голосов
/ 14 июня 2011

Я пытаюсь подключиться к веб-сервису из моего проекта 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>?Служба не распознает, что аргумент отправлен, только то, что метод был вызван.При передаче таких аргументов нужно ли их по-разному кодировать, чтобы указать, что это строка?

1 Ответ

0 голосов
/ 14 июня 2011

Ваш запрос должен быть проблемой. Я использую вашу строку, я получаю много ошибок. Отформатируйте ваше значение xml следующим образом и проверьте NSLog.

NSString *soapMessage = [NSString stringWithFormat:
                                 @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                                 "<query>\n"
                                 "<Key>%@</Key>\n"
                                "<Email>%@</Email>\n"
                               "</query>\n",key,email];
NSLog(@"%@",soapMessage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...