[英]POST Request with basic auth in Swift + get params + post params (using Alamofire or RxSwift or any thing else)
我尝试在服务器http://test.alex009.ru/上发送POST请求,并设置HTTP身份验证(alice / Qwerty1234)
执行查询:
通过参数传递POST http://test.alex009.ru/alice.php :
get参数为“ secret” = alex009 post参数“ input” =(从文本字段输入的文本)
标头中的必须指定接收到的内容的类型-application / json
我的代码是:
我有这个用于HTTP基本身份验证
let username = "alice"
let password = "Qwerty1234"
let loginString = NSString(format: "%@:%@", username, password)
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = loginData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions())
let authenticationToken = base64LoginString
我需要发布thith get参数:
let parameters : [String: AnyObject] = ["secret" : "alex009"]
然后创建NSMutableURLRequest:
let url = NSURL(string: "http://test.alex009.ru/alice.php")
var request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
let encoding = Alamofire.ParameterEncoding.JSON
(request, _) = encoding.encode(request, parameters: parameters)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
let values = ["input" : "textFromTextFild"]
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(values, options: [])
print(request)
并与Alamofire一起发送:
Alamofire.request(request)
.validate()
.responseJSON { response in
// do whatever you want here
switch response.result {
case .Failure(let error):
print(error)
case .Success(let responseObject):
print(responseObject)
}
}
并从服务器获取响应:
{URL:我的URL}错误Domain = com.alamofire.error代码= -6003“响应状态代码不可接受:406” UserInfo = {NSLocalizedFailureReason =响应状态代码不可接受:406}
我的错误在哪里?
let headers = ["Content-Type": "application/json"] let params: Parameters = [ "paramsString": param] Alamofire.request( baseUrlDev, method: .post, parameters:params, encoding: JSONEncoding.default, headers: headers).responseJSON {(response: DataResponse<Any>) in switch(response.result) { case .success(_): if let data = response.result.value{ HyberLogger.debug(response.result.value) } break case .failure(_):HyberLogger.debug("Unknown Error") } } break } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.