【发布时间】:2017-07-19 10:23:52
【问题描述】:
我曾尝试使用以下代码进行请求,但结果出现 400 错误。 API 由 header 和 body 组成。标头有两个字段,即“授权”和“内容类型”。正文格式已添加到下面的参数中。
func file( sender: abc){
let baseUrl = "url”
let params: [String : Any] = [
"profile": [
“Type": [
" Real Estate",
"Estater",
"Construction",
"Entertainment"
],
"Size": [
"large",
“small”
],
"Level": [
“A”,
“B”
],
“Name” : [
“John”,
“Harry”
]
]
]
let header = [
"Authorization" : "bearer e2ff3aa3-63a3-41d1-bc5a-3e8c88adeaaa",
"Content-Type" : "application/json"
]
// var request = URLRequest(url: URL(string:baseUrl)!)
// request.httpMethod = HTTPMethod.post.rawValue
// request.setValue("application/json", forHTTPHeaderField: "Content-Type")
// request.addValue("bearer e2ff3aa3-63a3-41d1-bc5a-3e8c88adeaaa", forHTTPHeaderField: "Authorization")
// let data = try! JSONSerialization.data(withJSONObject: params as Any, options:JSONSerialization.WritingOptions.prettyPrinted)
//
// request.httpBody = data
Alamofire.request("\(baseUrl)", method: .post, parameters: params, headers:header).responseJSON { response in
print(response.request ?? "no request") // original URL requ est
print(response.response ?? "no response") // HTTP URL response
print(response.data ?? "no data") // server data
print(response.result) // result of response serialization
print(response.response?.statusCode ?? "noCode")
if(response.response?.statusCode != nil){
switch response.response!.statusCode {
case 200:
print("Success")
let json = JSON(data: response.data!)
print(json)
sender.onSuccessCall()
case 400:
print("Error in authentication")
case 401:
print("Error authentication object was not found")
default:
print("dEfault")
}
}
}
}
请帮忙解决这个问题。
【问题讨论】:
-
我们不知道你的 api 想要你做什么
-
我只想通过 post 请求获取 JSON 数据,但它显示 400 错误。我的代码有错误吗?
-
在不知道您的 API 期望什么的情况下,我们无能为力。请在您的问题中包含一个成功的请求,即使它不是来自 swift(即 Postman 请求、curl 请求等)。
-
如果响应中出现错误,甚至在 seding 数据之前我们也无能为力,信息太少
-
请尝试使用我的代码,看看它对我来说非常适合我已经用我的 magento api 测试过