2013-11-03 117 views
0

我正在尝试开发此iOS应用程序,该应用程序可以与本地网络下的C#Web服务进行通信。我正在使用AFNetworking来实现通信。现在我已经在this tutorial的帮助下完成了从Web服务中读取XML数据,这意味着我的应用可以连接到Web服务。但我真正想做的是将数据从应用程序传递到Web服务。我有写一些示例代码:将数据从ios应用程序传递到C#web服务

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服务方面,我有这样的Web方法:

[Web Method] 
public void setOrderDetails(String orderDetails) 
{ 
     //store orderDetails into a text file. 

} 

我是新来的iOS开发,我不明白为什么我真的传递到Web服务时,我调用此方法:

[myClient postPath:@"setOrderDetails" parameters:requestArray success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      NSLog(@"success!"); 
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      NSLog(@"%@",error); 
     }]; 

我只是将一个NSDictionary作为参数传递给C#web服务?如果是这样的话,我可以在Web服务端使用这个NSDictionary做什么?

我不知道这是否是实现将数据传递到Web服务的正确方法。我真正想在这里做的是将一些字符串传递给Web服务,我该如何实现?

任何建议将不胜感激!

回答

0

您正在传递XML内容作为URL参数。您需要将其传递到请求的正文中。这里有几个使用AFNetworking问题解决发帖XML:

Example on using AFNetworking to post XML?

AFNetworking - Making an XML POST request to REST service? How to form NSDictionary parameters?

+0

如果我传递的XML内容,我怎么可以参考在C#的Web服务端的XML内容?你可以给我看一个例子[Web方法]来处理我从应用程序发送的XML吗? – user1589455

+0

您没有将数据作为XML发送。我以为这就是你想要做的。现在你将它作为URL参数传递。有很多教程用于在C#中使用该文章。我没有。 – Joel

+0

是的,这很有道理,现在对我来说很难理解AFNetworking。正如我之前所说的,我也有这个问题,我不明白如何在C#Web服务端响应POST,请您给我推荐一些教程来教我如何做到这一点? – user1589455

相关问题