私のプロジェクトでこれを行う必要があります:Alamofire共通キーと複数の値を持つパラメータを渡すか?
AlamofireのURLに手作業で文字列を追加すると簡単にこれを行うことができますが、私はそれを望ましくありません。私はパラメータオブジェクトとしてパラメータをします。私が何をしてきたパラメータ
のための1つの共通鍵で
複数の値:
public func findCreate(tags: [String], withBlock completion: @escaping FindCreateServiceCallBack) {
/* http://baseurlsample.com/v1/categories/create_multiple?category_name[]=fff&category_name[]=sss */
let findCreateEndpoint = CoreService.Endpoint.FindMultipleCategories
let parameters: Parameters = ["category_name[]" : tags]
Alamofire.request(
findCreateEndpoint,
method: .post,
parameters: parameters,
encoding: URLEncoding(destination: .queryString),
headers: nil
).responseJSON { (response) in
print(response)
}
//....
}
現在の結果を、私はこれを実行する場合は大丈夫ですが、値が送られましたサーバーに[""]があります。たとえば、
また、質問は、私の全コードの一部が間違っていますか? 1つの共通キーと複数の値を持つ上記のようなパラメータを送信するにはどうすればよいですか?
また、私はencoding: JSONEncoding.prettyPrinted
またはencoding: JSONEncoding.default
を追加した場合、私はステータスコード500を取得)Alamofire.request(にエンコーディングオプションを追加しようとしています。
同じ質問がありますが、正確な答えがないリンクがいくつかありますが、私はいつもカスタムのエンコーディングを使用しているような回答を持つ投稿を見ています。
追加情報:
これは動作しますが、私は、複数の文字列を送信する必要があります。
let parameters: [String : Any] = ["category_name[]" : tags.first!]
これも同様に動作します。
Alamofire.request("http://baseurlsample.com/v1/categories/create_multiple?category_name[]=fff&category_name[]=sss", method: .post).responseJSON { (data) in
print(data)
}
ありがとう、クリスティーナ!あなたは素晴らしいです! ;) – Glenn