我在服务器上发布我的参数数据,如下所示。
let parameters : [String : Any] = [
"cartdata" : cartArr, //cartArr is an array
"previewcart" : previewcart,
"json" : json,
"video" : video,
"token" : token,
"user_id" : userID,
"flag" : true
]
print(parameters)
let postBody = createJSONParameterString(postBody: parameters as NSDictionary) //The issue is here. Here the cartArr is converting into string.
print(postBody)
URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let data = data else {
if error == nil{
print(error?.localizedDescription ?? "Unknown Error")
}
return
}
if let response = response as? HTTPURLResponse{
guard (200 ... 299) ~= response.statusCode else{
print("Status code :- (response.statusCode)")
print(response)
return
}
}
在postBody中,数据是这样的
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjQ5MzE3Y2MxZmMyYjMzOWNkNTMzNDFiYTU1ZjBmMjc5MmY1NTI2YWVjYTI4YjllMjQ0OWVjM2VhMGY4NTM0ZWYwYTZmNDFlMjQyNWUxN2M5In0.eyJhdWQiOiIxIiwianRpIjoiNDkzMTdjYzFmYzJiMzM5Y2Q1MzM0MWJhNTVmMGYyNzkyZjU1MjZhZWNhMjhiOWUyNDQ5ZWMzZWEwZjg1MzRlZjBhNmY0MWUyNDI1ZTE3YzkiLCJpYXQiOjE1OTI4OTU4NjUsIm5iZiI6MTU5Mjg5NTg2NSwiZXhwIjoxNjI0NDMxODY1LCJzdWIiOiIzNjMiLCJzY29wZXMiOltdfQ.QbUbOwiDLNLrcJoP56sTz7-U9X3znJu9q3H9TQLjBJG2w6FHl_6s7em0veqcRA8tMLJBVkWu3kz1NFYzuhAzU1KDaUdajiPFyu7bqfAMQowaEweZOI6gEHr6OqGf4Br6poERZJrnj3N9OXBrT3Z2PSyL_q9oex9oWeag48LdeKeyPql5UtyXvDzATePBkfbt1l704tpuNGQ-ZIjUtAXDK-h2ZoDLl_oxxdZ3I4cLAL027BGmPCz_K1h2OjjJ8adDeJfD3RrOdeKwc-fE11O5dVq7cpDO4luNFveFTpe_ekM7xlLBv7JGhfNauEnlui2OhI_AuTGoa79YPt8Q-XLGHcUCQiTqsiJf9TYEGbuRrHz4ZjmCmr0mWoyfcizeWUTiQ5nfHMxRKsVU0E4eUW1D87Dw5XMi4QeRdjcIVvNJPnQnqg5WlPOp82bP8XdEgC75M0eAzawgyRfvSosdzj-9BvyNZfPZZ4aK3vsTw7KYkRER2UKooEnOZlTJMRksBby3QyHhRyY6pxPl1AkJIWMamE_tRq7EYBXDUTfhBUF9Usg2I_4EbWwv1aJ2A6kSLGIZpTFHvqgWyVjKQdF9xRg5gM2x02LFNY6YHIDqAfgEiXQp3N5pCXnFYm2yIz9_--C-08VfNWnuDSv9Cj6aZeWE6tKMwarm1VpIuNW-kzqqaYo","flag":true,"json":{"duration":20,"slottime":2,"type":"selected"},"video":{"name":"uploadlater"},"user_id":363,"cartdata":["{n "id" : "37",n "slots" : [n {n "maxSlot" : 90,n "total" : 20,n "type" : "NORMAL",n "time" : "04:00 PM",n "location_id" : 31,n "bookdate" : "2020-06-25",n "price" : "10",n "quantity" : 2,n "tv_position" : 1,n "device_id" : 8,n "id" : 37n }n ],n "building" : "GIP Mall",n "image" : "https:\/\/hifyapp.com\/dashboard\/public\/images\/LocationGallery\/5ee21c7ae214e.jpg",n "site_name" : 31,n "solt_price" : "10",n "landmark" : "Sector 38, Noida, Uttar Pradesh 201301",n "booking_date" : "2020-06-25"n}"],"previewcart":{"totalsites":1,"price":20,"subtotal":"23.6","quantity":2}}
在这个 cartArr 数据正在转换为字符串,但我必须像下面这样发送它。
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjQ5MzE3Y2MxZmMyYjMzOWNkNTMzNDFiYTU1ZjBmMjc5MmY1NTI2YWVjYTI4YjllMjQ0OWVjM2VhMGY4NTM0ZWYwYTZmNDFlMjQyNWUxN2M5In0.eyJhdWQiOiIxIiwianRpIjoiNDkzMTdjYzFmYzJiMzM5Y2Q1MzM0MWJhNTVmMGYyNzkyZjU1MjZhZWNhMjhiOWUyNDQ5ZWMzZWEwZjg1MzRlZjBhNmY0MWUyNDI1ZTE3YzkiLCJpYXQiOjE1OTI4OTU4NjUsIm5iZiI6MTU5Mjg5NTg2NSwiZXhwIjoxNjI0NDMxODY1LCJzdWIiOiIzNjMiLCJzY29wZXMiOltdfQ.QbUbOwiDLNLrcJoP56sTz7-U9X3znJu9q3H9TQLjBJG2w6FHl_6s7em0veqcRA8tMLJBVkWu3kz1NFYzuhAzU1KDaUdajiPFyu7bqfAMQowaEweZOI6gEHr6OqGf4Br6poERZJrnj3N9OXBrT3Z2PSyL_q9oex9oWeag48LdeKeyPql5UtyXvDzATePBkfbt1l704tpuNGQ-ZIjUtAXDK-h2ZoDLl_oxxdZ3I4cLAL027BGmPCz_K1h2OjjJ8adDeJfD3RrOdeKwc-fE11O5dVq7cpDO4luNFveFTpe_ekM7xlLBv7JGhfNauEnlui2OhI_AuTGoa79YPt8Q-XLGHcUCQiTqsiJf9TYEGbuRrHz4ZjmCmr0mWoyfcizeWUTiQ5nfHMxRKsVU0E4eUW1D87Dw5XMi4QeRdjcIVvNJPnQnqg5WlPOp82bP8XdEgC75M0eAzawgyRfvSosdzj-9BvyNZfPZZ4aK3vsTw7KYkRER2UKooEnOZlTJMRksBby3QyHhRyY6pxPl1AkJIWMamE_tRq7EYBXDUTfhBUF9Usg2I_4EbWwv1aJ2A6kSLGIZpTFHvqgWyVjKQdF9xRg5gM2x02LFNY6YHIDqAfgEiXQp3N5pCXnFYm2yIz9_--C-08VfNWnuDSv9Cj6aZeWE6tKMwarm1VpIuNW-kzqqaYo","flag":true,"json":{"duration":20,"slottime":2,"type":"selected"},"video":{"name":"uploadlater"},"user_id":363,"cartdata":["{"id" : "37", "slots" : [ { "maxSlot" : 90, "total" : 20, "type" : "NORMAL", "time" : "04:00 PM", "location_id" : 31, "bookdate" : "2020-06-25", "price" : "10", "quantity" : 2, "tv_position" : 1, "device_id" : 8, "id" : 37 }], "building" : "GIP Mall", "image" : "https:\/\/hifyapp.com\/dashboard\/public\/images\/LocationGallery\/5ee21c7ae214e.jpg", "site_name" : 31,"solt_price" : "10", "landmark" : "Sector 38, Noida, Uttar Pradesh 201301","booking_date" : "2020-06-25"}"],"previewcart":{"totalsites":1,"price":20,"subtotal":"23.6","quantity":2}}
您似乎正在创建一个JSON
并将其转换为String
,然后将其转换为数据以作为httpBody
发送。修改createJSONParameterString
方法,如下所示以解决此问题。
func createJSONParameterString(postBody: [String: Any]) -> Data? {
try? JSONSerialization.data(withJSONObject: postBody)
}
用法:
request.httpBody = createJSONParameterString(postBody: parameters)