过去几天我一直在做这件事。我正在从我的iPhone应用程序发送一些数据到MAMP上的本地主机。数据肯定被发送到服务器并被服务器接收,因为我得到的响应是在网页上运行的PHP代码,但它没有显示在网页上。有没有办法让网页显示所收到的令牌?我觉得这个问题是我的PHP脚本非常基本的问题。谢谢。下面是代码:
objective - c:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://192.168.2.12:8888/hello_world.php"]];
request.HTTPMethod = @"POST";
NSString *body = [NSString stringWithFormat:@"stripeToken=%@", token.tokenId];
NSLog(body);
request.HTTPBody = [body dataUsingEncoding:NSUTF8StringEncoding];
NSURLResponse *response;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog([[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
PHP: <?php
echo "Hello, World!";
print_r($_POST);
?>
NSLog:
2014-06-18 12:40:12.300 PayPhone Prototype[3775:60b] Received token tok_104F7R4h7nUnb2nUO3XoHPyK
2014-06-18 12:40:12.301 PayPhone Prototype[3775:60b] stripeToken=tok_104F7R4h7nUnb2nUO3XoHPyK
2014-06-18 12:40:12.306 PayPhone Prototype[3775:60b] <html>
<head>
<title>PHP Test</title>
</head>
<body>
Hello, World!Array
(
[stripeToken] => tok_104F7R4h7nUnb2nUO3XoHPyK
)
</body>
</html>
网页:
Hello, World!Array ( )
你的网页显示"错误"内容的原因是,当你访问一个URL时,浏览器会通过在地址栏中写下它的URL来发送一个GET请求。
将php替换为:
<?php
echo "Hello, World!";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r($_POST);
} else {
echo "This was not a POST";
}
?>
你会看到的。
为了让你的浏览器发送一个post,你应该,例如,创建一个表单,将做post到你的php页面;或者你可以在JavaScript中做(类似于你在Objective-C中做的)。我怀疑它是否有用。
所以,看起来你的应用程序正在工作,你的php页面行为正确。
也许你应该解释一下你在浏览器中加载php页面是为了做什么——如果它只是为了测试,那么你不需要它。您添加的NSLog
已经告诉了您一切。
将数组存储在如下所示的变量中
<?php
$variable = array
(
"stripeToken" => "tok_104F7R4h7nUnb2nUO3XoHPyK"
);
?>
然后在网页上返回
hello, word <?php echo $variable['stripeToken']; ?>