如何在http POST请求中添加参数(对于Drupal7评级字段),在swift 2中

时间:2016-04-29 11:14:26

标签: swift drupal-7 http-post nsurlsessiondatatask

我是初学者,尝试编码以向具有电影内容的节点的Drupal7评级字段提交投票。就像节点有'title'参数一样,'rating-percent'有一个参数,格式为=“75%”。 从节点视图输出json的GET请求会像这样获取评级百分比(以及许多其他字段)。

            {
        node =             {
            Body = "synopsis here";
            "rating-percent" = "75%";
            Nid = 16620;

我应该在此代码中添加什么来将数据值(例如75%)发布到'rating-percent'参数?这是我对POST的尝试:

// Send HTTP PUT Request
let Nid = "1"

// Define server side script URL
let ratingscriptUrl = "https://example.com/node/"

// Add one parameter
 let urlWithParams = ratingscriptUrl + Nid

// Create NSURL Ibject
 let myUrl = NSURL(string: urlWithParams);

// Create URL Request
 let request = NSMutableURLRequest(URL:myUrl!);

// Set POST request
 request1.HTTPMethod = "POST"

// Add parameters for 'ratings' field of node


// Execute HTTP Request
 let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
     data, response, error in

// Check for error
     if error != nil
  {
     print("error=\(error)")
     return
  }

非常感谢你们给予的任何帮助。

1 个答案:

答案 0 :(得分:0)

我在这里使用SwiftyJSON将我的Dictionary转换为JSON

let result: Dictionary<String, AnyObject> = ["Body": "synopsis", "rating-percent" :  "75%"]
let json = JSON(result).rawString()
request.HTTPBody = json!.dataUsingEncoding(NSUTF8StringEncoding)

你也有:

// Set POST request
 request1.HTTPMethod = "POST"

但您已将请求命名为request而非request1,但必须是拼写错误。