连接到服务器

时间:2011-05-26 04:55:02

标签: objective-c cocoa-touch web-services ios nsurlconnection

之前我从未与网络服务器接口,我对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>

请求正文不仅仅是这个,为了简单起见,我删除了很多。

那么有人可以指点我如何传递这些信息的教程或正确方向吗?

1 个答案:

答案 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