<iOS>网络编程SOAP, WSDL, Web Service(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-12-01 14:19 点击:次
NSString *address =@"http://www.ripedevelopment.com/webservices/LocalTime.asmx";
NSURL* url = [NSURLURLWithString:address];
NSMutableURLRequest *theRequest = [NSMutableURLRequestrequestWithURL:url];
// 然后就是text/xml, 和content-Length必须有。
[theRequest addValue: @"text/xml; charset=utf-8"forHTTPHeaderField:@"Content-Type"];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
// 下面这行, 后面SOAPAction是规范, 而下面这个网址来自哪里呢,来自于上面加红加粗的部分。
[theRequest addValue: @"http://www.ripedev.com/LocalTimeByZipCode"forHTTPHeaderField:@"SOAPAction"];
[theRequestsetHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection = [[NSURLConnectionalloc] initWithRequest:theRequestdelegate:self];
if(theConnection) {
webData = [[NSMutableData data] retain];
} else {
NSLog(@"theConnection is NULL");
}
好的, 上面已经把请求给发起了, 下面我们接收数据,并进行XMLParse解析。
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[webDatasetLength: 0];
NSLog(@"connection: didReceiveResponse:1");
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webDataappendData:data];
NSLog(@"connection: didReceiveData:2");
}
//如果电脑没有连接网络,则出现此信息(不是网络服务器不通)
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"ERROR with theConenction");
[connection release];
[webDatarelease];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"3 DONE. Received Bytes: %d", [webDatalength]);
NSString *theXML = [[NSStringalloc] initWithBytes: [webDatamutableBytes] length:[webDatalength] encoding:NSUTF8StringEncoding];
NSLog(@"received data=%@", theXML);
[theXML release];
//重新加載xmlParser
if(xmlParser) {
[xmlParserrelease];
}
xmlParser = [[NSXMLParseralloc] initWithData:webData];
相关新闻>>
- 发表评论
-
- 最新评论 更多>>