2016-02-10 4 views
1

Вот мой prepareForSegue методзапрос POST не работает

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let vc = segue.destinationViewController as! AllCommentsViewController 
    if segue.identifier == "addComment" { 
     if let stringText = commentTF.text { 
      vc.CommentsArray.append(stringText) 

      let urlString = "http://sekaaleksic.cloudlk.com/api/v1/post/comment/\(postId)/submitComment" 

      let request = NSMutableURLRequest(URL: NSURL(string: urlString)!) 
      let session = NSURLSession.sharedSession() 
      let params = ["comment=\(stringText)"] 

      request.HTTPBody = try? NSJSONSerialization.dataWithJSONObject(params, options: []) 
      request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
      request.addValue("application/json", forHTTPHeaderField: "Accept") 
      request.addValue("\(stringText)", forHTTPHeaderField: "comment") 
      request.HTTPMethod = "POST" 

      let task = session.dataTaskWithRequest(request, completionHandler: { data, response, error -> Void in 

       print(request.HTTPBody) 
       print(params) 
       print(error) 
       print(response) 
       print(data) 
      }) 

      task.resume() 

      } 

     } 
    } 
} 

Итак, в чем проблема? Как вы видите, мой urlString - это где Wordpress API для отправки комментария. postId - это идентификатор сообщения.

я должен сделать что-то вроде этого: $_POST['comment'] = 'some comment message';

Но этот код не работает (вы можете проверить количество комментариев для конкретной должности на [этой ссылке] [1])

Вот XCode Log ->

["test"] 
Optional(<5b22636f 6d6d656e 743d7465 7374225d>) 
["comment=test"] 
nil 
Optional(<NSHTTPURLResponse: 0x137bd1300> { URL: http://sekaaleksic.cloudlk.com/api/v1/post/comment/1/submitComment } { status code: 200, headers { 
    "Cache-Control" = "no-cache, must-revalidate, max-age=0, no-cache"; 
    Connection = "Keep-Alive"; 
    "Content-Encoding" = gzip; 
    "Content-Length" = 70; 
    "Content-Type" = "application/json"; 
    Date = "Wed, 10 Feb 2016 14:00:03 GMT"; 
    Expires = "Wed, 11 Jan 1984 05:00:00 GMT"; 
    "Keep-Alive" = "timeout=5, max=700"; 
    Pragma = "no-cache"; 
    Server = Apache; 
    Vary = "Accept-Encoding"; 
} }) 
Optional(<7b227374 61747573 223a6661 6c73652c 22657870 6c61696e 223a2243 6f6d6d65 6e742070 6f737420 69732065 6d707479 227d>) 



    [1]: http://sekaaleksic.cloudlk.com/api/v1/post/1/countComments 
+0

Вы никогда не устанавливали тело запроса, вы его прокомментировали. – pbush25

+0

Не работает даже при раскомментировании .. –

+0

Ну, ваш php настроен на получение запроса как JSON? – pbush25

ответ

1

Вы кодируете JSON неправильно.

сделать params равным:

["comment": stringText] 

JSON используется для кодирования словарей, не каскадных кодов строк.

+0

Спасибо! Я бы никогда не подумал об этом! –

Смежные вопросы