AlamofireImage सामान्य रूप से GET विधि के साथ अनुरोध करने वाला प्रतीत होता है। लेकिन हमारी परियोजना में, छवियों को डाउनलोड करने के लिए हमें POST विधि से अनुरोध करना होगा, क्योंकि हम एक्सेस टोकन भेजते हैं। मैंने स्टैक ओवरफ़्लो में इसी तरह के प्रश्न की खोज की है, लेकिन मुझे पर्याप्त उत्तर नहीं मिले। क्या कोई जानता है कि POST अनुरोध के साथ कैसे डाउनलोड किया जाए?

यूआरएल इस प्रकार है:

https://host_name/project_name/GetImage

1
Kazunori Takaishi 10 मई 2018, 17:20

2 जवाब

सबसे बढ़िया उत्तर

आप UIImageView के AlamofireImage एक्सटेंशन से af_setImage विधि का उपयोग कर सकते हैं और कोई भी URLRequestConvertible पैरामीटर पास कर सकते हैं। उदाहरण के लिए, अलामोफायर इनिशियलाइज़र के साथ URLRequest इंस्टेंस बनाएं:

let urlPath = "https://host_name/project_name/GetImage"
if var imageRequest = try? URLRequest(url: urlPath, method: .post) {
    imageRequest.addValue("token", forHTTPHeaderField: "token_field")
    imageView.af_setImage(withURLRequest: imageRequest)
}
1
Leo 11 मई 2018, 16:42

क्योंकि हमें HTTPBodyData में पैरामीटर भेजने हैं, लो के उत्तर के बाद, मैंने अपने कोड में कुछ बदलाव किए हैं। निम्नलिखित हमारा नया कोड है:

let urlPath = "https://host_name/project_name/GetImage"
let parameters:[String: Any] = [
        "token": "tokenValue",
        "imageName": "imageName"
    ]
let dataRequest = Alamofire.request(urlPath,
                                    method: HTTPMethod.post,
                                    parameters: parameters,
                                    encoding: JSONEncoding.default,
                                    headers: [:])
guard let imageRequest = dataRequest.request else {
    return
}
imageView.af_setImage(withURLRequest: imageRequest)

बिंदु सबसे पहले है, हम एक DataRequestऑब्जेक्ट बनाते हैं और फिर उसे URLRequest में Alamofire.request()विधि से टाइप करते हैं।

1
Kazunori Takaishi 14 मई 2018, 10:36