如何使用{"pollAnswers":[
{"pollAnswersId":0,"pollAnswer":"Sachin"},
{"pollAnswersId":1,"pollAnswer":"Dhoni"}
]}
执行SOAP
请求?
请查找NSURLSession
的请求格式。
SOAP
答案 0 :(得分:1)
我使用Objective C进行了NSURLSession的实现。它工作正常:
-(void)startSoapRequest{
NSString *soapMessage =
@"<soapenv:Envelopexmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:pm=\"http://appiancorp.com/webservices/pm\">\n<soapenv:Header/>\n<soapenv:Body>\n<pm:start>\n<username>awdmmappadmin1</username>\n<password>password</password>\n<completedDate>2016-04-25T13:37:34.699Z</completedDate>\n<gameMinutes>2</gameMinutes>\n<gameMoves>14</gameMoves>\n<gameSeconds>33</gameSeconds>\n<gameTimeSec>153</gameTimeSec>\n<guestId>2016</guestId>\n</pm:start>\n</soapenv:Body>\n</soapenv:Envelope>";
NSURL *url = [NSURL URLWithString:@"http://sampleurl.com/suite/webservice/processmodel/sample"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[soapMessage length]];
[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSession *soapSession = [NSURLSession sessionWithConfiguration: [NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionDataTask *dataTask = [soapSession dataTaskWithURL: url];
self.responseData = [[NSMutableData alloc]init];
[dataTask resume];
}
NSURLSessionTaskDelegate:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
//handle data here
[self.responseData appendData:data];
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
//Called when the data transfer is complete
//Client side errors are indicated with the error parameter
if (error) {
NSLog(@"%@ failed: %@", task.originalRequest.URL, error);
}else{
NSLog(@"DONE. Received Bytes: %lu", (unsigned long)[self.responseData length]);
NSString *theXML = [[NSString alloc] initWithBytes:
[self.responseData bytes] length:[self.responseData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@",theXML);
}
}