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.