Передача данных из приложения ios в веб-сервис C#
Я пытаюсь разработать это приложение для iOS, которое может взаимодействовать с веб-службой C# в локальной сети. Я использую AFNetworking для достижения связи. Теперь я достиг чтения XML-данных из веб-службы с помощью этого учебного пособия, что, по-моему, означает, что мое приложение может подключаться к веб-службе. Но я действительно хочу передать данные из приложения в веб-сервис. Я написал пример кода:
AFmyAPIClient *myClient = [AFmyAPIClient sharedClient];
NSMutableDictionary *requestArray = [NSMutableDictionary new];
NSString *details = [_listOfItems description];
float tempF= [_listOfItems totalPrice];
NSString *price = [NSString stringWithFormat:@"%f",tempF];
int tempI = 1;
NSString *table = [NSString stringWithFormat:@"%u",tempI];
[requestArray setObject:details forKey:@"details"];
[requestArray setObject:price forKey:@"price"];
[requestArray setObject:table forKey:@"table"];
[myClient postPath:@"setOrderDetails" parameters:requestArray success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
После того, как я создаю и запускаю это приложение, оно генерирует это сообщение об ошибке:
2013-11-03 16:25:48.654 HLR[16149:70b] <?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://localhost/service/Service1.asmx">3</int>
2013-11-03 16:25:48.844 HLR[16149:70b] Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 500" UserInfo=0x8b5b140 {NSLocalizedRecoverySuggestion=Missing parameter: orderDetails.
, AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest: 0x8b5bb70> { URL: http://10.0.0.111/service/Service1.asmx/setOrderDetails }, NSErrorFailingURLKey=http://10.0.0.111/service/Service1.asmx/setOrderDetails, NSLocalizedDescription=Expected status code in (200-299), got 500, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x8b4e910> { URL: http://10.0.0.111/service/Service1.asmx/setOrderDetails } { status code: 500, headers {
"Cache-Control" = private;
"Content-Length" = 34;
"Content-Type" = "text/plain; charset=utf-8";
Date = "Sun, 03 Nov 2013 05:25:34 GMT";
Server = "Microsoft-IIS/7.5";
"X-AspNet-Version" = "2.0.50727";
"X-Powered-By" = "ASP.NET";
} }}
На стороне веб-службы C# у меня есть такие веб-методы:
[Web Method]
public void setOrderDetails(String orderDetails)
{
//store orderDetails into a text file.
}
Я новичок в разработке для iOS, я не понимаю, что я действительно передал веб-сервису при вызове этого метода:
[myClient postPath:@"setOrderDetails" parameters:requestArray success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
Я просто передал NSDictionary в качестве параметра веб-службы C#? Если это то, что есть, что я могу сделать с этим NSDictionary на стороне веб-службы?
Я не знаю, является ли это правильным способом передачи данных в веб-сервис. Что я действительно хочу сделать здесь, так это передать некоторые строки веб-сервису, как мне этого добиться?
Любые предложения будут высоко ценится!
1 ответ
Вы передаете контент XML как параметры URL. Вам необходимо передать его в теле запроса. Вот пара вопросов, касающихся размещения XML с использованием AFNetworking:
Пример использования AFNetworking для публикации XML?
AFNetworking - Создание XML-запроса POST для службы REST? Как сформировать параметры NSDictionary?