使用Alamofire不会应用HTTP POST标头数据

时间:2015-04-05 20:03:38

标签: swift alamofire

我是我的快捷应用程序。我想用alamofire

创建一个请求POST

请求

$ curl \
          -H 'Accept: application/json' \
          -H 'Content-Type: application/json' \
          -X POST -d '{ "user": { "email": "user@example.com", "password": "1234" } }' \
          http://localhost:3000/users/sign_in 

我的代码

    let URL = NSURL(string: "https://lobo-api.herokuapp.com/users/sign_up")!
    let mutableURLRequest = NSMutableURLRequest(URL: URL)
    mutableURLRequest.HTTPMethod = "GET"

    let parameters = ["user": ["email": "bolo@me.com", "password": "OPOPO"]]
    var JSONSerializationError: NSError? = nil
    mutableURLRequest.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters, options: nil, error: &JSONSerializationError)

    mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Accept")
    mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")


   Alamofire.request(mutableURLRequest).responseJSON { (request, response, data, error) in
            println(error)
             println(response)
             println(data)
            println(error)

    }

我收到此错误

  

可选({URL:https://lobo-api.herokuapp.com/users/sign_up} {状态代码:404,标题{
      连接="保持活力";
      " Content-Length的" = 1564;
      "内容类型" =" text / html;字符集= UTF-8&#34 ;;
      Date =" Sun,05 Apr 2015 19:54:11 GMT&#34 ;;
      服务器=牛仔;
      Via =" 1.1 vegur&#34 ;;
      " X - 请求-ID" =" 12df8182-c91e-439f-b773-2b2e48f3f0c6&#34 ;;
      " X-运行" =" 0.007897";
  })   零
  可选(错误域= NSCocoaErrorDomain代码= 3840"操作无法完成。(可可错误3840。)"(字符0周围的值无效。)UserInfo = 0x170678500 {NSDebugDescription =字符0周围的值无效。})

3 个答案:

答案 0 :(得分:1)

首先,在您 curl 命令中,您使用了 POST 请求,但在您的代码中,您希望发出 GET 请求。< / p>

然后您从服务器获得404响应。根据 wikipedia 确切定义,您有 404 http状态代码响应,这意味着:&#34; .. 404或Not Found错误message是一个HTTP标准响应代码,表示客户端能够与给定服务器通信,但服务器找不到所请求的内容。&#34; (在您的情况下可能是因为您必须执行POST请求改为GET)

最后,您还会看到 3840 http状态代码
每次服务器没有使用JSON代码正确响应时出现的错误,JSON文本必须以UTF-8,UTF-16或UTF-32编码(在您的情况下可能是因为您必须执行POST请求而不是GET)

答案 1 :(得分:0)

您的终点https://lobo-api.herokuapp.com/users/sign_up是错误的。您从服务器获得了404响应。

答案 2 :(得分:0)

&#39>是heroku的一个问题。上次更新未激活