最近公司要使用SOAP协议,临时科普了一下
SOAP相关资料 http://www.w3school.com.cn/soap/index.asp
SOAP实践例子 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
// 测试我们服务器1.2
// NSString *soapMsg = [NSString stringWithFormat:
//
// @"<?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>"
//
// "<getUserInfo xmlns=\"http://ULife.Service\">"
// "<strPassword>String</strPassword>"
// "<strUserID>String</strUserID>"
// "</getUserInfo>"
//
// "</soap12:Body>"
// "</soap12:Envelope>"
//
// ];
//
// // 将这个XML字符串打印出来
// NSLog(@"%@", soapMsg);
// // 创建URL,内容是前面的请求报文报文中第二行主机地址加上第一行URL字段
// NSURL *url = [NSURL URLWithString: @"http://192.168.2.236/ULifeService.ULife_Mobile.svc"];
// // 根据上面的URL创建一个请求
// NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
// NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMsg length]];
// // 添加请求的详细信息,与请求报文前半部分的各字段对应
// [req addValue:@"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
// [req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
// // 设置请求行方法为POST,与请求报文第一行对应
// [req setHTTPMethod:@"POST"];
// // 将SOAP消息加到请求中
// [req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
// // 创建连接
// conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
// if (conn) {
// webData = [NSMutableData data];
// }
// 测试验证码的连接1.1
// NSString *soapMsg = [NSString stringWithFormat:
//
// @"<?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>"
//
// "<getMobileCodeInfo xmlns=\"http://WebXml.com.cn/\">"
// "<mobileCode>String</mobileCode>"
// "<userID></userID>"
// "</getMobileCodeInfo>"
//
// "</soap:Body>"
// "</soap:Envelope>"
//
// ];
//
// // 将这个XML字符串打印出来
// NSLog(@"%@", soapMsg);
// // 创建URL,内容是前面的请求报文报文中第二行主机地址加上第一行URL字段
// NSURL *url = [NSURL URLWithString: @"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"];
// // 根据上面的URL创建一个请求
// NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
// NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMsg length]];
// // 添加请求的详细信息,与请求报文前半部分的各字段对应
// [req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
// [req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
// [req addValue:@"http://WebXml.com.cn/getMobileCodeInfo" forHTTPHeaderField:@"SOAPAction"];
// // 设置请求行方法为POST,与请求报文第一行对应
// [req setHTTPMethod:@"POST"];
// // 将SOAP消息加到请求中
// [req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
// // 创建连接
// conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
// if (conn) {
// webData = [NSMutableData data];
// }
注意命名空间后面不能加/,除非有特定需求