之前我从未与网络服务器接口,我对xml知之甚少但对http标头一无所知。我需要基本上连接到服务器并传递信息(使用Cocoa-touch),这是提供的信息:
Request headers:
POST https://www.example.org/example
Content-Type: text/xml
Content-Length: 638
Authorization: [[developer-key]]
我得到了这个请求正文:
<LetterValues>
<FullName><![CDATA[John Doe]]></FullName>
</LetterValues>
请求正文不仅仅是这个,为了简单起见,我删除了很多。
那么有人可以指点我如何传递这些信息的教程或正确方向吗?
答案 0 :(得分:1)
-(void)xmlParsingInBackground
{
NSString xmlString = [NSString stringWithFormat:@"Your XML REquest"];
NSURL * serviceUrl = [NSURL URLWithString:[NSString stringWithString:@"YOUR URL"]];
NSMutableURLRequest * serviceRequest = [NSMutableURLRequest requestWithURL:serviceUrl];
[serviceRequest setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];
[serviceRequest setHTTPMethod:@"POST"];
[serviceRequest setHTTPBody:[xmlString dataUsingEncoding:NSUTF8StringEncoding]];
NSData *responseData;
NSURLResponse * serviceResponse;
NSError * serviceError;
responseData = [NSURLConnection sendSynchronousRequest:serviceRequest returningResponse:&serviceResponse error:&serviceError];
NSString *resp=[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
if(responseData != NULL)
{
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:responseData];
[xmlParser setDelegate:self];
//[xmlParser setDelegate:parser];
BOOL success = [xmlParser parse];
if(success)
{ // DO SOMETHING HERE
}
}
做上述事情并执行以下内容:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
这会帮助你。 :)
ADDITION:从以下链接下载代码,告诉您如何实施上述方法Sizmic XML。