2016-09-25 11 views
5

मुझे इस फ़ंक्शन में निम्न जेसन पास करने की आवश्यकता है ताकि Shopify Api सबमिशन को समझ सके।स्विफ्ट 3 पोस्टिंग जेसन पैरामीटर एपीआई

हर बार जब मैं इस कोड को निष्पादित करता हूं, तो मुझे एक त्रुटि संदेश मिलता है कि एक अनुपलब्ध आवश्यक पैरामीटर है। जाहिर है, मैं सही चर प्रारूप बनाने में असमर्थ हूं और इसे सर्वर पर भेजता हूं।

Shopify एपीआई निम्नलिखित json उम्मीद कर रही है पोस्ट

के माध्यम से पारित होने के लिए
{ 
    "customer": { 
     "first_name": "Steve", 
     "last_name": "Lastnameson", 
     "email": "[email protected]", 
     "verified_email": true, 
     "addresses": [ 
      { 
       "address1": "123 Oak St", 
       "city": "Ottawa", 
       "province": "ON", 
       "phone": "555-1212", 
       "zip": "123 ABC", 
       "last_name": "Lastnameson", 
       "first_name": "Mother", 
       "country": "CA" 
      } 
     ] 
    } 
} 

यहाँ मेरी पोस्टिंग कोड है:

let customer = [ 
    "customer": [ 
     "first_name": "Steve", 
     "last_name": "Lastnameson", 
     "email": "[email protected]", 
     "verified_email": "true", 
     "addresses": [ 
      [ 
       "address1": "123 Oak St", 
       "city": "Ottawa", 
       "province": "ON", 
       "phone": "555-1212", 
       "zip": "123 ABC", 
       "last_name": "Lastnameson", 
       "first_name": "Mother", 
       "country": "CA", 
      ], 
     ], 
    ], 
] as [String: Any] 

var request = URLRequest(url: URL(string: shopUrl + "/admin/customers.json")!) 
request.httpMethod = "POST" 
request.httpBody = try! JSONSerialization.data(withJSONObject: customer, options: []) 

URLSession.shared.dataTask(with:request, completionHandler: {(data, response, error) in 
    if error != nil { 
     print(error) 
    } else { 
     do { 
      guard let json = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any] else { return } 

      guard let errors = json?["errors"] as? [[String: Any]] else { return } 
       if errors.count > 0 { 
        // show error 
        return 
       } else { 
        // show confirmation 
       } 
      } 
     } 
    }).resume() 
+0

सर्वर से आपको सटीक प्रतिक्रिया क्या मिल रही है? –

+1

नया ग्राहक खाता बनाने के लिए – Hamid

+0

समस्या यह है कि सर्वर को अपेक्षित प्रारूप में डेटा नहीं मिल रहा है – Hamid

उत्तर

5

अनुरोध सामग्री प्रकार घोषणा की है की जरूरत है। जोड़ें:

request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
request.addValue("application/json", forHTTPHeaderField: "Accept")