代码之家  ›  专栏  ›  技术社区  ›  Nitish

Alamoire-错误请求

  •  0
  • Nitish  · 技术社区  · 6 年前

    恐怕我不能共享API URL。但是我已经检查过邮差了,它起作用了。这是一个“请求”,下面是响应:

    < PRE> >代码> “user_key”:“b0aebdebd15e2beaaf479ca3c4f8227e8e970681” } < /代码>

    邮差截图:

    在代码中,这是我使用Alamoire发出的请求:

    alamofire.request(“some url”,method:.post,参数:params,encoding:url encoding.httpbody,headers:[“content type”:“application/json”])
    .responseObject(response:dataResponse<user>)位于
    
    让userresponse=response.result.value
    打印(“”)
    }
    < /代码> 
    
    

    但用户响应为零。这是用户对象:

    导入对象映射器 类用户:可映射{ var authtoken:字符串? 需要初始化吗?(地图:地图){ } func映射(map:map){ self.authtoken<-map[“用户密钥”] } } < /代码>

    我使用的是objectmapper>a>这里。

    假设它不是一个jsonobject,我尝试将其作为一个string:。

    alamofire.request(“some url”,method:.post,参数:params,encoding:url encoding.httpbody,headers:[“content type”:“application/json”])
    .ResponseString(响应:dataResponse<string>)位于
    让datauser=response.data作为!任何
    让datauser1=response.data作为!任何对象
    设为error=response.error
    让code=response.response?状态码
    打印(响应值)
    打印(响应结果值)
    }
    < /代码> 
    
    

    不过,没什么。我无法检索值。但是,状态代码显示为400(错误请求)。 到底是什么?jsonobject orstring?我该怎么解决这个问题?

    {
        "user_key": "b0aebdedb15e2beaaf479ca3c4f8227e8e970681"
    }  
    

    邮差截图:

    enter image description here

    在代码中,这是我使用Alamoire发出的请求:

    Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
                .responseObject { (response: DataResponse<User>) in
    
                    let userResponse = response.result.value
                    print("")
        }
    

    但用户响应为零。这就是用户对象:

    import ObjectMapper
    
    class User: Mappable {
    
        var authToken: String?
    
         required init?(map: Map) {
    
        }
    
        func mapping(map: Map) {
            self.authToken <- map["user_key"]
        }
    
    
    }
    

    我正在使用ObjectMapper在这里。

    假设它不是JSON对象,我试图将其作为String:

     Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
                .responseString { (response: DataResponse<String>) in
                    let dataUser = response.data as! Any
                    let dataUser1 = response.data as! AnyObject
                    let error = response.error
                    let code = response.response?.statusCode
                    print(response.value)
                    print(response.result.value)
            }  
    

    不过,没什么。我无法检索值。但是,状态代码显示为400(错误请求)。 到底是什么?杰森对象或?我该怎么解决这个问题?

    1 回复  |  直到 6 年前
        1
  •  0
  •   a.masri    6 年前

    试着换一个

    URLEncoding.httpBody JSONEncoding.default

    jsonEncoding.默认

    使用 JSONSerialization 创建参数对象的JSON表示,该对象被设置为请求的主体。这个 Content-Type 编码请求的HTTP头字段设置为 application/json .

    Alamofire reference