搞了两天了AFNetworking 访问WebService.asmx一直都是不成功,帮忙一下

iOS 码拜 9年前 (2016-03-23) 1298次浏览
本人是用VS+c#写的一个简单的服务:服务要求输入一个给定的密码:123456就返回0;
IE,打开:http://192.168.3.110/ATXWebService.asmx?op=login 可以打开,是内网的IP.
打开后里面调用信息如下:
login 测试
测试窗体只能用于来自本地计算机的请求。
SOAP 1.1
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /ATXWebService.asmx HTTP/1.1
Host: 192.168.3.110
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: “127.0.0.1/login”
<?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>
<login xmlns=”127.0.0.1″>
<Password>string</Password>
</login>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?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>
<loginResponse xmlns=”127.0.0.1″>
<loginResult>string</loginResult>
</loginResponse>
</soap:Body>
</soap:Envelope>
SOAP 1.2
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /ATXWebService.asmx HTTP/1.1
Host: 192.168.3.110
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version=”1.0″ encoding=”utf-8″?>
<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap12=”http://www.w3.org/2003/05/soap-envelope”>
<soap12:Body>
<login xmlns=”127.0.0.1″>
<Password>string</Password>
</login>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version=”1.0″ encoding=”utf-8″?>
<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap12=”http://www.w3.org/2003/05/soap-envelope”>
<soap12:Body>
<loginResponse xmlns=”127.0.0.1″>
<loginResult>string</loginResult>
</loginResponse>
</soap12:Body>
</soap12:Envelope>
//上面这两段是从网页上直接复制出来的。
//下面的本人在xcode7里面访问的代码;环境是xcode7+ios9,web调用是AFNetworking最新版的。(老版用RequestManager,新版是用AFHTTPSessionManager了),Web服务用c#2010写的,挂在IIS里面,网页访问可以访问。
//  XCode代码如下:
– (void)viewDidLoad {
[super viewDidLoad];

AFHTTPSessionManager* managet=[[AFHTTPSessionManager alloc] init];

// Requests 请求Header参数
managet.requestSerializer = [AFHTTPRequestSerializer serializer];
//系统Header参数
[managet.requestSerializer setValue:@”192.168.3.110″ forHTTPHeaderField:@”Host”];
[managet.requestSerializer setValue:@”application/sx-www-form-urlencoded” forHTTPHeaderField:@”Content-Type”];
[managet.requestSerializer setValue:@”length” forHTTPHeaderField:@”Content-length”];

//Responses 响应Header参数
managet.responseSerializer = [AFJSONResponseSerializer serializer];

managet.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@”text/xml; charset=utf-8″];
//参数
NSMutableDictionary *parameters = [[NSMutableDictionary alloc]init];

[parameters setObject:@”Password” forKey:@”123456″];

[managet POST:@”http://192.168.3.110/ATXWebService.asmx?op=login” parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@”progress”);
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
NSLog(@”SUccess%@”,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@”Error”);
}];
}
//原因是是新手,本人是新手,所以功能是最基本的调用。但运行后
//运行也不会报错,就是返回一直是返回failure的结果,不知道是哪里参数没对还是怎么回事。
//本来想本人处理的,昨天和今天都在网上看贴,最先看网上用IOS内建的NSURLConnection,最后发现API己经停用了,
//后来看说用ASIHTTPRequest,导入后一堆的错误,不能ARC等一直没找到原因,
//最后用AFNetworking,终于是能用了,但不会调用还是没搞定,郁郁了两天了,高手帮帮看一下。麻烦大家了,感谢!

解决方案

40

就是进入failure时候的错误啊,这个失败的原因是有日志出来的,你不贴出出来,怎么帮你

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明搞了两天了AFNetworking 访问WebService.asmx一直都是不成功,帮忙一下
喜欢 (0)
[1034331897@qq.com]
分享 (0)