Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
286 kez görüntülendi
ios development kategorisinde tarafından

Selamün aleyküm cümleten,

Alamofire kütüphanesini kullanarak post yapmaya çalışırken gönderdiğim string'te çift tırnak " oluşturmaya çalışırken sürekli \" back slash ile birlikte geliyor string alt tarafta paylaşıyorum kodu encode ile ilgili bir sorun mu bir türlü çözemedim...

  var jsonString:Data
    do {
        let encoder = JSONEncoder()

        jsonString = try encoder.encode(bookingDTO)

        let string1 = String(data: jsonString, encoding: String.Encoding.utf8)

        let begin = "{\"ContentString\":"

        let str1:String = begin + string1! + "}"

        let postParam: [String: String] = ["data": str1]

        print(postParam)

        _ = Alamofire.request("http://xxxxx/xxxx/xxx",
                                         method: .post,
                                         parameters: postParam,
                                         encoding: JSONEncoding.default,
                                         headers: header).responseJSON {
                                            response in
                                            if let status = response.response?.statusCode {
                                                switch(status){
                                                case 201:
                                                    completionHandler(true)
                                                default:
                                                    print("error with response status: \(status)")
                                                    completionHandler(false)
                                                }
                                            }
                                        }
    } catch {
        print(error)
    }
}

Gelen: {\"ContentString\" .....
Beklenen: {"ContentString" .....

1 cevap

+1 oy
tarafından

Aleyküm selam.
Backslash gelmesi yanlış değil.
Hata request parametreleri için belirlediğin encoding tipinde.
"JSONEncoding.default" değil "URLEncoding.default" olmalı.
post veya get farketmez, http request ile parametre gönderdiğinde URLEncoding.default kullanmalısın, parametrelerdeki back slashlar url oluşturulurken encode edilerek gönderilir.

...