0
votes

Upload Swift MultiPart / Form-Data avec Ajoutez la chaîne de chaîne au corps (problème: tableau va en tant que chaîne sur le serveur)

im essayant d'envoyer une matrice de chaîne sur le serveur dans une demande de multipartite à l'aide de la bibliothèque ALAMOFIRE SWIFT, j'ai essayé plusieurs façons d'encoder la matrice mais la plupart du temps, il va comme une chaîne. Est-ce que quelqu'un peut m'aider avec ça. À l'exception de l'envoi de la matrice de téléchargement d'image et d'autres valeurs va bien sur le serveur. Ci-dessous mon code.

"VisitedCountries"=> ["ALG","ARG"]


2 commentaires

C'est un éventail de chaînes sous la clé "VisitesCountries". Quel est le format que vous attendez?


"VisityCountries" => ["alg", "arg"]. Je m'attends à cela. spécialement sans les citations "[]" extérieures "[]". p.s- im pas un backend dev @Losiowaty


3 Réponses :


0
votes

dans l'en-tête Change Type de contenu Code> à Application / JSON CODE> à partir de Multipart / Form-Data ​​Code>. Type de contenu Code> de la requête indique au serveur dans lequel le format vous envoie les données.

let headers: HTTPHeaders = ["Content-type": "application/json"]


2 commentaires

J'ai besoin de télécharger une image aussi. vient d'essayer, toujours le même: D


@Lahirupinto Check JPEGDATA (CompressionQuality :) CompressionQuality - Exprimé comme valeur de 0,0 à 1,0



5
votes

a finalement trouvé une réponse par moi-même, il suffit de faire une petite astuce avec la valeur clé. Vous trouverez ci-dessous le code.

for code in self.getVisitedCountryCodeList(){
    if let codeData = code.data(using: .utf8) {
        multipartFormData.append(codeData, withName: key+"[]" )
    }
}


0 commentaires

2
votes

Dans mon cas, la solution acceptée n'a travaillé que pour l'envoi d'un objet dans le tableau. Pour plus d'un élément, le tableau devait être envoyé sous forme de code "[] =" alg "," arg "" " code>.

La réponse acceptée génère plusieurs tableaux avec un article chacun, comme: "Code [] =" ALG "" Code [] = "Arg" " code>. Ce qui a fonctionné pour moi Série de virgule séparée de tous les objets de tableau, convertissez-la en données et appendez-la à la multipartformdata en une fois. p>

Le code alternatif: p>

        let key = "countryCodes"
        let array = ["ALG", "ARG"]
        let arrayString = array.joined(separator: ",")

        if let arrayData = arrayString.data(using: .utf8) {
            formData.append(arrayData, withName: key+"[]" )
        }


0 commentaires