2017-11-16 18 views
-2

ここでは、サーバーにPUTメソッドを使用してデータを投稿する必要がありますが、投稿できず、郵便配達員で正常に機能しています。私のjson関数は間違っていれば間違っていますか?まずSwift 3でPUTメソッドを使用してデータを投稿する方法は?

func itemsIncrementingandDecrementingtocartDownloadJsonWithURL(itemsApi: String){ 
     print(itemsApi) 
     let url = URL(string: itemsApi) 
     var request = URLRequest(url: url! as URL) 
     request.httpMethod = "PUT" 
     let parameters : [String: Any] = ["cartItem": 
      [ 
       "item_id": itemId!, 
       "qty": quantity!, 
       "quote_id": "\(self.key!)" 
      ] 
     ] 
     print(parameters) 
     request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
     let session = URLSession(configuration:URLSessionConfiguration.default, delegate: nil, delegateQueue: nil) 
     let dataTask = session.dataTask(with: request) { (data, response, error) -> Void in 

      if error != nil { 

       //handle error 
      } 
      else { 

       let jsonStr = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) 
       print("Parsed JSON: '\(jsonStr)'") 
      } 
     } 
     dataTask.resume() 
    } 
+0

リクエストに 'parameters' dictを使用していませんか? – Tj3n

+0

それを実装する方法は? @ Tj3n –

+0

私はPUTメソッドとして投稿するようにJsonについて質問していました@ Tj3n –

答えて

0

は、JSON文字列にパラメータをシリアライズし、HTTPボディを要求するために文字列を追加します。

let postData = JSONSerialization.data(withJSONObject: parameters, options: []) 
request.httpBody = postData as Data 

これは役に立ちます。

0

これを追加してください。

let data = try! JSONSerialization.data(withJSONObject: parameters, options: JSONSerialization.WritingOptions.prettyPrinted) 
request.httpBody = data 
関連する問題