0

我正在尝试学习如何在 PHP 和 Objective-c 中使用 POST 和 GET 的东西。

我遇到了一个问题。在objective-c中进行POST后,如何获得返回结果?

我的 PHP 文件是:

<html>
<head><title>Bug Reporter</title></head>
<body>
<h2>Fancy Bug Reporter</h2>
<hr />
<?php
if (isset($_POST['go']))
{
        // Form was posted
        print "User submitted bug: ". $_POST['name'] . ": " . $_POST['description'];
}
else
{
        // Form was not posted, display form
?>
<form method="POST" action="<?php echo $PHP_SELF; ?>">
Bug Name:<br /><input type="text" name="name" maxlength="100" /><br />
Bug Description:<br /><input type="text" name="description" maxlength="1000" size="80" /><br />
<input type="submit" name="go" value="Add Bug">
</form>
<?php
}
?>
</body>
</html>

在目标 c 中:

    NSMutableURLRequest *request =
    [[NSMutableURLRequest alloc] initWithURL:
     [NSURL URLWithString:@"http://xxxxx.com/xxx.php"]];

    [request setHTTPMethod:@"POST"];

    NSString *postString = @"go=1&name=Bad%20Bad%20Bug&description=This%20bug%20is%20really%20really%20super%20bad.";

    [request setValue:[NSString
                       stringWithFormat:@"%d", [postString length]]
   forHTTPHeaderField:@"Content-length"];

    [request setHTTPBody:[postString
                          dataUsingEncoding:NSUTF8StringEncoding]];


    [[NSURLConnection alloc]
     initWithRequest:request delegate:self];
4

2 回答 2

1

您需要实现这些NSURLConnectionDelegate方法,这些方法将针对与您的请求相关的任何网络连接事件调用,例如身份验证、失败、成功、接收到的数据等。

另外我建议你看看AFNetworking,一个很棒的网络库,它NSURLConnection提供了基于块的方法。

如果发现它比普通的NSURLConnection方式更方便。

于 2012-12-17T22:33:16.837 回答
0

您永远不会保存连接并且无法启动它。使用新的便捷方法:

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse*r, NSData*d, NSError*e) { 
     ...
 }
于 2012-12-18T11:02:53.080 回答