ATHttpConnectionManager
public class ATHttpConnectionManager: NSObject
The ATHttpConnectionManager allows to interact with http server with ease.
-
The variable allows to get a singleton instance of the class.
Usage Example
ATHttpConnectionManager.sharedInstance
Declaration
Swift
public static let sharedInstance :ATHttpConnectionManager = ATHttpConnectionManager()
-
The function to send http request.
Usage Example
// Code to explain handling response WITHOUT Response-Mapper-Block let aRequest = ATHttpConnectionManagerRequest(urlString: "https://example.com/image.png") ATProgressOverlay.sharedInstance.show() ATHttpConnectionManager.sharedInstance.sendRequest(request: aRequest, completion: {(pResult) in ATProgressOverlay.sharedInstance.hide() let anImageData :Data? = (pResult.result as? ATHttpConnectionManagerResponse)?.body if anImageData != nil { let anImage = UIImage(data: anImageData!) self.imageView.image = anImage } }) // Code to explain handling response WITH Response-Mapper-Block let aRequest = ATHttpConnectionManagerRequest(urlString: "https://example.com/data.json") ATProgressOverlay.sharedInstance.show() ATHttpConnectionManager.sharedInstance.sendRequest(request: aRequest, responseMapper: {(pResponse) -> ATHttpConnectionManagerResult in let aReturnVal :ATHttpConnectionManagerResult = ATHttpConnectionManagerResult() do { let aJsonObject = try JSONSerialization.jsonObject(with: pResponse.body!, options: JSONSerialization.ReadingOptions.allowFragments) if aJsonObject is NSDictionary { let aResponseDict :NSDictionary = aJsonObject as! NSDictionary aReturnVal.error = nil aReturnVal.result = aResponseDict.value(forKey: "emailAddress") as AnyObject } } catch { aReturnVal.error = NSError(domain: "com.example.error", code: 1, userInfo: [NSLocalizedDescriptionKey : error.localizedDescription]) aReturnVal.result = nil } return aReturnVal }, completion: {(pResult) in ATProgressOverlay.sharedInstance.hide() if pResult.result is String { let anEmailAddress = pResult.result as! String self.textView.text = anEmailAddress } })
Declaration
Swift
public func sendRequest(request pRequest :ATHttpConnectionManagerRequest, responseMapper pResponseMapper: ((ATHttpConnectionManagerResponse) -> ATHttpConnectionManagerResult)? = nil, completion pCompletion: @escaping ((ATHttpConnectionManagerResult) -> Void))
Parameters
pRequest
Parameter to provide HTTP request details to execute.
pResponseMapper
Parameter to provide response mapper block. The block will get 1) HTTP Response Code, 2) HTTP Response Headers and 3) HTTP Response Body as parameters. You can perform different tasks in this block, like converting the response body to JSON object or XML object and then convert it to model objects etc.
pCompletion
Parameter to provide completion block. If response mapper block is nil, then completion block will have ATHttpConnectionManagerResult object with result set to HTTP response body.