Alamofire帖子被视为获取localhost

时间:2016-03-13 12:04:09

标签: php swift post get alamofire

当我使用Swift迁移到iOS 9上的Alamofire 3时,我以前工作的POST调用服务器停止工作并被解释为GET调用。

我已将压缩的东西压缩到一个显示问题的非常小的测试用例中。 PHP只打印出收到的参数:

$type = "NONE";
if (isset($_POST['a'])) {
  $a = $_POST['a'];
  $type = "POST";
} else {
  $a = $_GET['a'];
  $type = "GET";
}

$result = array("a" => $a, "b" => "something", "t" => $type);
echo(json_encode($result));

客户端Swift代码响应GET和POST调用的按钮操作:

    @IBAction func localGet(sender: AnyObject) {
      print("Local Get")
      let postsEndpoint : String = "http://localhost/~paris/small.php?a=getting"
      Alamofire.request(.GET, postsEndpoint, parameters : nil, encoding : .JSON)
        .responseJSON { response in
            guard response.result.error == nil else {
                print("error calling localhost GET")
                return
            }
            if let JSON = response.result.value {
                print("JSON: \(JSON)")
            }
      }
    }


    @IBAction func localPost(sender: AnyObject) {
      print("Local Post")        
      let postsEndpoint : String = "http://localhost/~paris/small.php"
      let newPost = ["title" : "First Post", "body" : "I is first", " userId" : 1, "a" : "posting"]
      Alamofire.request(.POST, postsEndpoint, parameters : newPost, encoding : .JSON)
        .responseJSON { response in
            guard response.result.error == nil else {
                print("error calling localhost POST")
                return
            }
            if let JSON = response.result.value {
                print("JSON: \(JSON)")
            }
      }
    }

以下是代码中的一些输出,它显示了两种情况如何被视为GET,因此POST的尝试失去了传入的参数:

Local Get
JSON: {
    a = getting;
    b = something;
    t = GET;
}
Local Post
JSON: {
    a = "<null>";
    b = something;
    t = GET;
}

我看到帖子是a GoDaddy problem,但我在计算机上使用了本地主机。我也曾尝试change the content-type to urlencoded基于另一篇文章,但这不起作用(所以我为了清楚起见省略了代码)。

我不知道该尝试什么。非常感谢任何帮助!

0 个答案:

没有答案