I am sending String array(contains HTML code and names of images) to mysql with code:
func uploadNote(user: String, title: String, category: String, content: [String]) {
let URL: NSURL = NSURL(string: "http://site/uploadNote.php")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
request.HTTPMethod = "POST"
var data = NSData()
var obj: AnyObject = "l"
do {
data = try NSJSONSerialization.dataWithJSONObject(content, options: NSJSONWritingOptions.init(rawValue: 0))
obj = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
print("created data")
} catch {
}
let bodyData = "category=\(category)&username=\(user)&title=\(title)&content=\(obj)"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
print("appended data to body")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error task -> \(error)")
return
}
do {
let result = NSString(data: data!, encoding: NSUTF8StringEncoding)
print(result)
} catch {
print("Error -> \(error)")
}
}
task.resume()
}
I have to store it in mysql so I serialize this array and send to mysql(TEXT):
$jsonContent = mysql_real_escape_string($_POST['content']);
Finally I want to send it back to an iPhone so I request for it and send it from php:
while($row = mysqli_fetch_array($result)) {
$snd = (array)htmlspecialchars($row['content']);
echo json_encode($snd);
}
Here is the code for iPhone:
func downloadNote(user: String, title: String, completionHandler: CompletionHandlerNotes) {
let URL: NSURL = NSURL(string: "http://site/downloadNotes.php")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
request.HTTPMethod = "POST"
let bodyData = "username=\(user)&title=\(title)"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error task -> \(error)")
return
}
do {
let result = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as! [String]
print(result.count)
for var i = 0; i<result.count; i++ {
print("COUNT: \(i) \n \(result[i]) \n\n ")
}
//completionHandler(strArray: result)
} catch {
print("Error -> \(error)")
}
}
task.resume()
}
And It returns an array with count 1. Looking like this:
COUNT: 0
(
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n<title></title>\n<meta name=\"Generator\" content=\"Cocoa HTML Writer\">\n<style type=\"text/css\">\np.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px '.SF UI Text'; color: #ffffff}\nspan.s1 {font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00pt; color: #000000}\nspan.s2 {font-family: '.SFUIText-Regular'; font-weight: normal; font-style: normal; font-size: 15.00pt; background-color: #555555}\nspan.s3 {font-family: '.SFUIText-Regular'; font-weight: normal; font-style: normal; font-size: 15.00pt; background-color: #969600}\n</style>\n</head>\n<body>\n<p class=\"p1\"><span class=\"s1\">aaaa</span><span class=\"s2\">sadasdasdasdasdasd</span><span class=\"s3\">asdasdasdasd</span></p>\n</body>\n</html>\n",
"<imgnote>474472.jpg",
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n<title></title>\n<meta name=\"Generator\" content=\"Cocoa HTML Writer\">\n<style type=\"text/css\">\np.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}\nspan.s1 {font-family: 'Helvetica'; font-weight: normal; font-style: normal; font-size: 12.00pt}\n</style>\n</head>\n<body>\n<p class=\"p1\"><span class=\"s1\"></span></p>\n</body>\n</html>\n"
)