SOAP Webservice用AFNetworking实现请求

来源:互联网 发布:箪食壶浆以迎将军乎 编辑:程序博客网 时间:2024/06/05 19:48

NSString *soapMessage = [NSString stringWithFormat:                             @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"                             "<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/\">\n"                             "<soap:Body>\n"                             "<Check2dCode xmlns=\"http://115.28.40.11:8888/webservices/\">\n"                             "<userID>%@</userID>\n"                             "<deviceInfo>%@</deviceInfo>\n"                             "<barcode>%@</barcode>\n"                             "<totalMoney>%@</totalMoney>\n"                             "</Check2dCode>\n"                             "</soap:Body>\n"                             "</soap:Envelope>\n", self.userid, self.deviceInfo, self.barcode, self.totalMoney                             ];        //请求发送到的路径    NSURL *url = [[NSURL alloc] initWithString:@"http://115.28.40.11:8888/webservices/AndroidAndIos.asmx"];    NSString *soapActionURL = @"http://115.28.40.11:8888/webservices/Check2dCode";        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.responseSerializer = [[AFHTTPResponseSerializer alloc] init];    NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[soapMessage length]];    [manager.requestSerializer setValue:msgLength forHTTPHeaderField:@"Content-Length"];    [manager.requestSerializer setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];    [manager.requestSerializer setValue:[url host] forHTTPHeaderField:@"Host"];    [manager.requestSerializer setValue:[NSString stringWithFormat:@"%@",soapActionURL] forHTTPHeaderField:@"SOAPAction"];        [manager.requestSerializer setQueryStringSerializationWithBlock:^NSString *(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error) {        return soapMessage;    }];    [manager POST:@"http://115.28.40.11:8888/webservices/AndroidAndIos.asmx" parameters:soapMessage success:^(AFHTTPRequestOperation *operation, id responseObject) {                 NSString *response = [[NSString alloc] initWithData:(NSData *)responseObject encoding:NSUTF8StringEncoding];         NSLog(@"****success = %@, %@", operation, response);              } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSString *response = [[NSString alloc] initWithData:(NSData *)[operation responseObject] encoding:NSUTF8StringEncoding];        NSLog(@"****fail = %@, %@, %@", operation, error, response);    }];


用图示讲解一下结构:



0 0
原创粉丝点击