【问题标题】:HTTP POST header data are not applied using Alamofire使用 Alamofire 不应用 HTTP POST 标头数据
【发布时间】:2015-06-10 06:46:17
【问题描述】:

我是我的 swift 应用程序。我想用 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,标题{
连接 = "保持活动状态";
"内容长度" = 1564;
“内容类型”=“文本/html;字符集=utf-8”;
日期 =“2015 年 4 月 5 日星期日 19:54:11 GMT”;
服务器 = 牛仔;
Via = "1.1 素食主义者";
"X-Request-Id" = "12df8182-c91e-439f-b773-2b2e48f3f0c6";
“X 运行时”=“0.007897”;
} })

可选(错误域=NSCocoaErrorDomain Code=3840“操作无法完成。(Cocoa 错误 3840。)”(字符 0 周围的值无效。) UserInfo=0x170678500 {NSDebugDescription=字符 0 周围的值无效。})

【问题讨论】:

  • 您可能希望您的 HTTP 方法为 POST,对吧?

标签: swift alamofire


【解决方案1】:

首先在你的 curl 命令中你使用 POST 请求,但在你的代码中你想发出 GET 请求。

然后您会收到来自服务器的 404 响应。根据 wikipedia 的确切定义,您有一个 404 http 状态代码响应,这意味着:".. 404 或 Not Found 错误消息是 HTTP 标准指示客户端能够与给定服务器通信的响应代码,但服务器找不到请求的内容。”(在您的情况下可能是因为您必须执行 POST 请求而不是 GET) p>

最后,您还会看到 3840 http 状态代码
每次服务器未使用 JSON 代码正确响应时出现的错误,并且 JSON 文本必须以 UTF-8、UTF-16 或 UTF-32 编码(在您的情况下,可能是因为您必须向获取)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这是heroku的问题。上次更新未激活

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 2015-07-03
        • 2016-05-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多