Ios 如何使用AFNetworking库调用.NETXMLWeb服务

Ios 如何使用AFNetworking库调用.NETXMLWeb服务,ios,afnetworking,Ios,Afnetworking,我使用以下代码来调用web服务 更新1: 现在,我有以下代码: -(NSMutableArray *) getAll { NSURL *baseURL = [NSURL URLWithString:@"http://highoncoding.com/Customers.asmx?op=GetAll"]; NSString *soapBody = @"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:

我使用以下代码来调用web服务

更新1:

现在,我有以下代码:

-(NSMutableArray *) getAll 
{   
    NSURL *baseURL = [NSURL URLWithString:@"http://highoncoding.com/Customers.asmx?op=GetAll"];    

    NSString *soapBody = @"<?xml version=\"1.0\" encoding=\"utf-8\"?><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>    <GetAll xmlns=\"http://tempuri.org/\" /></soap:Body></soap:Envelope>";

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:baseURL];
    [request setHTTPBody:[soapBody dataUsingEncoding:NSUTF8StringEncoding]];

    [request addValue:@"http://tempuri.org/GetAll" forHTTPHeaderField:@"SOAPAction"];

    [request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

    [operation start];

您需要将
内容类型
SOAPAction
设置为标题。SOAP XML字符串必须是请求的post正文

我建议在使用AFNetworking进行随机插入之前,使用SOAPClient、HTTPClient或raw curl构建此请求

将此原始请求与AFNetworking生成的请求进行比较,以查看使用类似代理的方法的差异所在

更新:下面是一个正常工作的原始请求示例

答复如下:


您似乎没有提供帖子正文,但建议需要提供一个帖子正文。我注意到的另一件事是,请求最终是内容类型:application/x-www-form-urlencoded;我更新了原始问题中的答案,而不是我上面所描述的。另外,我正在使用一个名为“窃听”的软件来查看网络流量。因此,我安装了Charles,但我不确定您是如何获得上述接口的。我还安装了FireFox代理插件和所有东西。Charles只会检查流量。这个请求是使用(以前是免费的,但现在可以在Mac应用商店中使用)完成的是的,我正在使用窃听,它也会检查流量,因为某些原因,body soap信封从未发送过!那是因为你用的是完全错误的网络。您正在设置正文中的标题,并尝试将xml字符串用作单个未命名参数。如果您检查请求,这应该是显而易见的。
[request setHTTPMethod:@"POST"];