Reputation: 13
I try to send POST request on server http://test.alex009.ru/ set HTTP authentication (alice / Qwerty1234)
execute the query:
POST http://test.alex009.ru/alice.php with parameter transfer:
get parameter is "secret" = alex009 post parameter "input" = (entered text from the text field)
in the header must specify the type of the received content - application / json
My code is:
I have this for HTTP basic auth
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
and I need to post thith get parameters:
let parameters : [String: AnyObject] = ["secret" : "alex009"]
then I create 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)
and send it with 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)
}
}
and get response from server :
{ URL: my url } Error Domain=com.alamofire.error Code=-6003 "Response status code was unacceptable: 406" UserInfo={NSLocalizedFailureReason=Response status code was unacceptable: 406}
where is my mistake?
Upvotes: 0
Views: 568
Reputation: 539
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
}
}
Upvotes: 0