使用Swift发布POST请求

时间:2015-01-03 18:06:59

标签: php ios json swift

我正在尝试将数据从我的iOS应用程序发送到PHP脚本。我有标题,描述和城市。我希望它始终保存我从iOS应用程序发送给它的每个信息,并且每次发送数据时都会创建一个新信息。我遇到的问题是,当我在浏览器上访问PHP文件时,没有任何显示。标题,说明和城市字段始终为空白。但在我的Xcode控制台中,我看到它正确返回所有内容。这是我的快速代码。

func postToServerFunction() {        
        var url: NSURL = NSURL(string: "http://vittletest.netii.net/index.php")!
        var request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
        request.HTTPMethod = "POST"
        let postString = "title=testing&description=hello&city=RanchoCordova"
        request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
        let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
            data, response, error in

            if error != nil {
                println("error=\(error)")
                return
            }

            println("response = \(response)")

            let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
            println("responseString = \(responseString)")
        }
        task.resume()
    }

这是我的PHP文件。

<?php 
    $something = "Some Info";
    echo $something;

     $title = $_POST['title'];
     $description = $_POST['description'];
     $city = $_POST['city']; 

     echo "<br />";
     echo "Title: ". $title;  
     echo "<br />";
     echo "Description: ". $description; 
     echo "<br />";
     echo "City: ". $city;  
 ?> 

这是我在Xcode上的控制台输出。

2015-01-03 10:05:50.861 VittleTest[616:28516] Warning: A long-running operation is being executed on the main thread. 
 Break on warnBlockingOperationOnMainThread() to debug.
response = <NSHTTPURLResponse: 0x7f9f5ae5e3f0> { URL: http://vittletest.netii.net/index.php } { status code: 200, headers {
    Connection = close;
    "Content-Length" = 309;
    "Content-Type" = "text/html";
    Date = "Sat, 03 Jan 2015 18:05:52 GMT";
    Server = Apache;
    "X-Powered-By" = "PHP/5.2.17";
} }
responseString = Optional(<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 Some Info<br />Title: testing<br />Description: hello<br />City: RanchoCordova 
 </body>
</html>
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
)

我希望我给了你们足够的信息来帮助我,因为我似乎无法弄明白,因为我不是最好用PHP。

2 个答案:

答案 0 :(得分:0)

如果您通过浏览器查看脚本而不是那些脚本,因为它将是一个没有帖子值的单独浏览器请求。

如果要保留数据,则需要找到使用数据库或某些文件存储该数据的方法。

答案 1 :(得分:0)

原因是......从快速开始,你正在通过邮政救护车。

 let postString = "title=testing&description=hello&city=RanchoCordova"

但是当您直接在浏览器中点击网址时,您不会发布这些参数。这就是为什么他们是空白的