How to get the response data out of the NSHTTPURLResponse in the callback of AFJSONRequestOperation?
NSHTTPURLResponse
only contains HTTP header information; no body data. So no, this would be impossible. If you have any control over this code, have the block or method pass the operation itself and get responseData
or responseJSON
.
In the callback from responseJSON
you can get the body from a DataResponse<Any>
object using response.result.value
or String(data:response.data!, encoding: .utf8)
.
You can't get it from response.response
, which is a NSHTTPURLResponse
object. This only has header info.
Alamofire.request(URL(string: "https://foo.com")!).validate(statusCode: 200..<300).responseJSON() { response in
let body = response.result.value
}
If the http response doesn't validate the above doesn't work. but this does:
Alamofire.request(URL(string: "https://foo.com")!).validate(statusCode: 200..<300).responseJSON() { response in
let body = String(data:response.data!, encoding: .utf8)
}