objective-c如何获取网页内容的 URL 请求 (post)

标签: Xcode Objective-C
发布时间: 2016/9/20 20:44:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个小的 Mac 应用程序,应该能够将数据发布到我的 web 服务器,将数据保存在数据库中。现在这就是我现在拥有的代码︰

NSData *postData = [urlString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

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

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

    if (connection) NSLog(@"Done");

它的优良工程。但现在我想要检查是否数据是正确的 (和存储在数据库中的) 或 (如电子邮件) 的有什么不对劲。PHP 文件打印如"电子邮件不正确"了,如果电子邮件是不正确。 但如何能取此数据 (PHP 打印出) 在 Xcode 应用程序知道这不是是成功吗?

谢谢你的答案 !

解决方法 1:

为 NSURLConnection,实现委托方法

-(void) 连接:(NSURLConnection *) 连接 didReceiveResponse:(NSURLResponse *) 响应。 当请求完成时,将由应用程序调用此方法。您可以访问使用 '反应' 参数的响应数据。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

然后只是将数据参数转换成字符串使用︰

NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

然后您可以搜索的响应的任何字符串你想要的例如,"电子邮件不正确"。

PS︰ 我一般不使用 NSURLConnection/NSURLRequest 的 HTTP 请求,我建议你查阅 ASIHTTPRequest 真的很简单的 HTTP 请求/连接。

希望这有助于。

赞助商