发送POST请求到本地主机,数据被接收,但没有显示在网页上


Sending POST Request to Local Host, Data Being Received But Not Showing Up On Webpage

过去几天我一直在做这件事。我正在从我的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']; ?>