iosswift

Reading Websites in iOS


I am trying to read data from my API. I am not using JSON data because the API doesn't return an array, just a line of text. Anyways, I am using the following code to read the text from the API.

func contactVetApi(url:String){
    
    let nsUrl = NSURL(string:url)
    let task = NSURLSession.sharedSession().dataTaskWithURL(nsUrl!){
        (data, response, error) in
        print(data)
        
    }
    
    task.resume()
    
}

I am calling this function in the ViewDidLoad function of my ViewController file. As you can see, it takes a parameter that is a string. The parameter is the URL to read. It then translates the string into a NSUrl so it can be used with the sharedSession. I then initialize the shared session and create a data task with that url. I then print out the data it returns. The only issue is that the output isn't what I am expecting. What I am expecting is for it to say:

"Future home of something quite cool."

Although, this is what I am getting:

Optional(<46757475 72652068 6f6d6520 6f662073 6f6d6574 68696e67 20717569 74652063 6f6f6c>)
Optional(<46757475 72652068 6f6d6520 6f662073 6f6d6574 68696e67 20717569 74652063 6f6f6c>)

I need help figuring out why it is printing that out instead of what I am expecting. In case it is needed, the API URL is http://apis.wilsonfamily5.org/vet/about.php. Before anybody asks though, I did add into the info.plist file the disabling of the iOS 9 app transport security. If you need any extra information to help me solve this problem, I would be more then happy to give it to you.


Solution

  • You currently are printing a NSData object, which will always look like that jibberish. What you actually want however is to convert the NSData to a NSString or String to create a human readable form:

    var dataAsString = NSString(data: data, encoding: NSUTF8StringEncoding)
    

    Taken from this answer.