[英]How to send a POST request with nested Dictionary in swift
我在StackOverflow上搜索了100多個帖子,但是找不到任何正確答案,任何人都可以幫助我解決這個謎。
let param : [String : Any]= [
"ServiceReqID" : 1,
"WebUsersID" : customerID,
"FirstName" : userName,
"LastName" : "",
"Company" : self.profileValues.customerCompanyName,
"City" : self.profileValues.customerCityName,
"Email" : self.profileValues.customerEmail,
"ContactNo" : self.profileValues.customerContactNumber,
"Country" : "Pakistan",
"PackageChange" : 0,
"AddressChange" : 0,
"TelInternetVAS" : 0,
"Others" : 0,
"Comments" : comments,
"CSAFNO" : self.profileValues.customerCSAFNo,
"SecondaryContactNo" : "",
"CustomerTicket" : [
"RequestID" : requestID,
"TaskID" : taskID,
"Description" : comments,
"TicketTypeID" : 3,
"CustomerID" : customerID,
"PriorityID" : 3,
"CustomerTPPID" : TTPIDArray
]
]
使用此代碼,僅將第一個模型發送到服務器,並使用blanck值傳遞secound模型
func postserviceRequestFeedback (
url : String,
parameter : [String : Any],
tiket : HTTPHeaders
)
{
Alamofire.request (
url,
method : .post,
parameters : parameter,
headers : tiket
)
.responseJSON { (response) in if response.result.isSuccess{ } }
請幫我。
你可以這樣使用
let customerTckt:[String:Any] = ["RequestID" : requestID ,
"TaskID" : taskID ,
"Description" : comments ,
"TicketTypeID" : 3 ,
"CustomerID" : customerID ,
"PriorityID" : 3 ,
"CustomerTPPID" : TTPIDArray ]
let param : [String : Any] = ["ServiceReqID" : 1 ,
"WebUsersID" : customerID,
"FirstName" : userName,
"LastName" : "" ,
"Company":self.profileValues.customerCompanyName ,
"City" : self.profileValues.customerCityName ,
"Email" : self.profileValues.customerEmail ,
"ContactNo" : self.profileValues.customerContactNumber ,
"Country" : "Pakistan" ,
"PackageChange" : 0 ,
"AddressChange" : 0,
"TelInternetVAS" : 0 ,
"Others" : 0 ,
"Comments" : comments ,
"CSAFNO" : self.profileValues.customerCSAFNo,
"SecondaryContactNo" : "" ,
"CustomerTicket" :customerTckt]
func postserviceRequestFeedback(url : String , parameter : [String : Any] , tiket : tiket ){
Alamofire.request(url, method : .post , parameters : parameter , headers :
HTTPHeaders).responseJSON { (response) in
if response.result.isSuccess{}}
感謝所有人,我解決了這個問題。 這是此問題的逐步解決方案。 1)
Alamofire.request(url, method : .post , parameters : parameter , encoding : JSONEncoding.default, headers : tiket ).responseJSON { (response) in
if response.result.isSuccess{
let responseJoson : JSON = JSON(response.result.value!)
print(responseJoson)
}
編碼在這里非常重要。 不要跳過這個。 第2步)
func apiCall(){
let customerTckt:[String:Any] = ["RequestID" : requestID ,
"TaskID" : taskID ,
"Description" : comments ,
"TicketTypeID" : 3 ,
"CustomerID" : customerID ,
"PriorityID" : 3 ,
"CustomerTPPID" : TTPIDArray ]
let param : [String : Any] = ["ServiceReqID" : 1 ,
"WebUsersID" : customerID,
"FirstName" : userName,
"LastName" : "" ,
"Company":self.profileValues.customerCompanyName ,
"City" : self.profileValues.customerCityName ,
"Email" : self.profileValues.customerEmail ,
"ContactNo" : self.profileValues.customerContactNumber ,
"Country" : "Pakistan" ,
"PackageChange" : 0 ,
"AddressChange" : 0,
"TelInternetVAS" : 0 ,
"Others" : 0 ,
"Comments" : comments ,
"CSAFNO" : self.profileValues.customerCSAFNo,
"SecondaryContactNo" : "" ,
"CustomerTicket" :customerTckt]
let userToken: HTTPHeaders = [
"Authorization": "bearer \(accessToken)",
"Content-Type": "application/json"
]
postserviceRequestFeedback(url: postRequestFeedbackUrl, parameter: param , tiket: userToken)
}
不要將“ Content-Type”跳過到application / json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.