如何使用NSMutableURLRequest从Web服务器获取数据

时间:2010-09-24 10:22:54

标签: iphone

我尝试为输入其数据的用户构建一个应用程序,这些数据将发布到网络服务器以便保存在数据库中。此Web服务器返回一些数据,如Id或其他内容。 我如何收到网络服务器返回的数据? 转移已经与NSMutableURLRequest一起使用。但是我搜索一个sollution来从Web服务器读取答案并将其显示在标签上。

2 个答案:

答案 0 :(得分:0)

查看NSURLConnection的委托方法。

答案 1 :(得分:0)

如何完成的示例。 Original source

NSString *post = @"key1=val1&key2=val2";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.someurl.com"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) 
{
    receivedData = [[NSMutableData data] retain];
} 
else 
{
    // inform the user that the download could not be made
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [receivedData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [receivedData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // do something with the data
    // receivedData is declared as a method instance elsewhere
    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]);
    NSString *aStr = [[NSString alloc] initWithData:receivedData encoding:NSASCIIStringEncoding];
    NSLog(aStr);

    // release the connection, and the data object
    [receivedData release];
}