我是电话编程的新手。使用下面的代码我得到响应表单 web 服务
NSString *soapMessage=[NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<OnlineStatus xmlns=\"http://tempuri.org/\">\n"
"<CafeName>Cyber Cafe Name</CafeName>\n"
"<FromDate>2012-03-01</FromDate>\n"
"<ToDate>2013-05-03</ToDate></OnlineStatus>\n"
"</soap:Body>\n"
"</soap:Envelope>"];
NSLog(@"%@",soapMessage);
NSURL *url = [NSURL URLWithString:@"http://www.ebidmanagerdemo.com/gjHouseOnline/xml/XMLDataService.asmx"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://tempuri.org/OnlineStatus" forHTTPHeaderField:@"Soapaction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if(theConnection) {
webData = [NSMutableData data];
}
else {
NSLog(@"theConnection is NULL");
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
NSLog(@"%@",msgLength);
}
}
我收到以下格式的回复
2013-05-27 13:55:10.028 NewC Newcafezee[1191:11303] <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<OnlineStatus xmlns="http://tempuri.org/">
<CafeName>Cyber Cafe Name</CafeName>
<FromDate>2012-03-01</FromDate>
<ToDate>2013-05-03</ToDate></OnlineStatus>
</soap:Body>
</soap:Envelope>
2013-05-27 13:55:13.170 NewC Newcafezee[1191:11303] DONE. Received Bytes: 18345
2013-05-27 13:55:13.170 NewC Newcafezee[1191:11303] getting in xml <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><OnlineStatusResponse xmlns="http://tempuri.org/"><OnlineStatusResult><?xml version="1.0" encoding="utf-8"?>
<DataSet>
<xs:schema id="Result" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="Result" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="SystemDateTime" type="xs:dateTime" minOccurs="0" />
<xs:element name="CafeDateTime" type="xs:dateTime" minOccurs="0" />
<xs:element name="LicenseNumber" type="xs:string" minOccurs="0" />
<xs:element name="MachineIP" type="xs:string" minOccurs="0" />
<xs:element name="TotalClients" type="xs:int" minOccurs="0" />
<xs:element name="IdleClients" type="xs:int" minOccurs="0" />
<xs:element name="BusyClients" type="xs:int" minOccurs="0" />
<xs:element name="DummyIdle" type="xs:int" minOccurs="0" />
<xs:element name="DummyBusy" type="xs:int" minOccurs="0" />
<xs:element name="PCUsageSessions" type="xs:int" minOccurs="0" />
<xs:element name="PCUsageMinutes" type="xs:int" minOccurs="0" />
<xs:element name="SessionMessage" type="xs:string" minOccurs="0" />
<xs:element name="CreatedBy" type="xs:int" minOccurs="0" />
<xs:element name="CreatedDate" type="xs:dateTime" minOccurs="0" />
<xs:element name="Cybercafe" type="xs:string" minOccurs="0" />
<xs:element name="Email" type="xs:string" minOccurs="0" />
<xs:element name="AdminPassword" type="xs:string" minOccurs="0" />
<xs:element name="MajorVersion" type="xs:short" minOccurs="0" />
<xs:element name="MinorVersion" type="xs:short" minOccurs="0" />
<xs:element name="SalesAmount" type="xs:decimal" minOccurs="0" />
<xs:element name="PurchasesAmount" type="xs:decimal" minOccurs="0" />
<xs:element name="Revision" type="xs:int" minOccurs="0" />
<xs:element name="CZLicense" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Result>
<Table diffgr:id="Table1" msdata:rowOrder="0">
<SystemDateTime>2012-09-20T00:00:00-06:00</SystemDateTime>
<CafeDateTime>2012-09-18T11:01:54-06:00</CafeDateTime>
<LicenseNumber>cc</LicenseNumber>
<MachineIP>192.168.13.167</MachineIP>
<TotalClients>0</TotalClients>
<IdleClients>0</IdleClients>
<BusyClients>0</BusyClients>
<DummyIdle>0</DummyIdle>
<DummyBusy>0</DummyBusy>
<PCUsageSessions>0</PCUsageSessions>
<PCUsageMinutes>0</PCUsageMinutes>
<SessionMessage>LVCLPRLbSCTC</SessionMessage>
<CreatedBy>1</CreatedBy>
<CreatedDate>2012-09-20T00:00:00-06:00</CreatedDate>
<Cybercafe>Cyber Cafe Name</Cybercafe>
<Email>YOURMAIL@CAFE.COM</Email>
<AdminPassword>admin1</AdminPassword>
<MajorVersion>1</MajorVersion>
<MinorVersion>0</MinorVersion>
<SalesAmount>0.0000</SalesAmount>
<PurchasesAmount>0.0000</PurchasesAmount>
<Revision>0</Revision>
<CZLicense />
</Table>
</Result>
</diffgr:diffgram>
</DataSet></OnlineStatusResult></OnlineStatusResponse></soap:Body></soap:Envelope>
我没有得到标签末尾的 < 和 >。我在这个响应中没有得到开始标签和结束标签。在 xml 中也没有
并使用下面的代码我正在尝试解析数据,但这里它没有加载数据NSXMLParser
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"DONE. Received Bytes: %d", [webData length]);
NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog(@" getting in xml %@",theXML);
xmlParser = [[NSXMLParser alloc]initWithData:webData];
[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities: YES];
[xmlParser parse];
NSLog(@" iiiiii %@",xmlParser);
}
它的显示NSXMLParser
如下所示。我想使用开始和结束元素解析数据。
2013-05-27 13:55:13.179 NewC Newcafezee[1191:11303] iiiiii <NSXMLParser: 0x71c7060>