Alamofire: الحصول على الطلب والمصفوفة المعلمات

تم إنشاؤها على ٣ فبراير ٢٠١٥  ·  3تعليقات  ·  مصدر: Alamofire/Alamofire

لا يبدو أن طلبات GET تترجم معلمات الصفيف بشكل صحيح.

    let params: [String: AnyObject] = ["q": ["one", "two"], "target": "en"]
    Alamofire.request(.GET, "https://www.googleapis.com/language/translate/v2", parameters: params)

ينشئ عنوان url:

q٪ 5B٪ 5D = واحد & q٪ 5B٪ 5D = اثنان والهدف = en

أعتقد أنه يحاول إضافة [] لقضية POST. ولكن في حالة GET ، يجب أن تكون q = one & q = two

ال 3 كومينتر

هذا هو السلوك المقصود. في README.md ،

نظرًا لعدم وجود مواصفات منشورة حول كيفية تشفير أنواع المجموعات ، فإن اصطلاح إلحاق [] بمفتاح قيم المصفوفة (foo [] = 1 & foo [] = 2) ، وإلحاق المفتاح المحاط بأقواس مربعة لقيم القاموس المتداخلة ( foo [bar] = baz) [مستعمل].

بدلاً من استخدام GET ، يجب أن تفكر في استخدام POST أو PUT وتمرير القيم عبر JSON أو XML أو تنسيق آخر محدد جيدًا. قد يتطلب هذا تغييرات من جانب الخادم بشكل واضح.

إذا كان جانب الخادم خارج نطاق سيطرتك ، فيجب أن تفكر في ترميز هذه المعلمات يدويًا بدلاً من ذلك.

نعم إنها نقطة نهاية google api ، لذا فهي خارجة عن إرادتي. واجهة برمجة تطبيقات Google لا تحب هذا التنسيق. يمكنني إنشاءه يدويًا ، وأعتقد أنني سأقوم بتقديمه على الرغم من أنكم تدركون ذلك.

@ JRG-Developer صحيح — هذا سلوك مقصود. استخدم ترميز المعلمات المخصصة إذا كنت بحاجة إلى أي شيء آخر غير الخيارات المتوفرة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات