SDWebImage как использовать базовую аутентификацию

#swift #sdwebimage

#swift #SDWebImage

Вопрос:

Нет информации о том, как использовать SDWebImage с базовой аутентификацией в Swift. Не могли бы вы сказать мне, пожалуйста, как я могу это сделать?

Например, если я использую Alamofire, я могу выполнить базовую авторизацию:

  Alamofire.request(.GET, URLString, encoding: .JSON)
    .authenticate(user: user, password: password)
....
  

Я получаю фотографию URL-адреса из Alamofire. Затем я хочу использовать SDWebImage для получения изображения и установить фон для кнопки, использующей это изображение.

Я думаю, мне нужно использовать sd_setImageWithURL для получения изображения с сервера.

 button.sd_setImageWithURL(NSURL(string: photo)!, forState: .Normal)
  

Но у меня есть базовая аутентификация, и мне нужно передать имя пользователя и пароль.

Комментарии:

1. что вы подразумеваете под базовой аутентификацией. Объясните подробнее

2. а также добавьте подробную информацию о том, что вы пробовали…

3. Я добавил пример из Alamofire

4. Подсказки: в Alamofire посмотрите Request.swift на authenticate() . Вы увидите, что он генерирует URLCredential из user и password , а в SDWebImage есть несколько объектов, обладающих NSURLCredential свойством. Я думаю, было бы слишком посмотреть на код при загрузке изображения и проверить, какой объект он вызвал в источнике, а затем проверить, куда поместить эти учетные данные…

5. Спасибо. Я обновил свою проблему

Ответ №1:

 let sdDownloader = SDWebImageDownloader.shared()
    sdDownloader.username = "username"
    sdDownloader.password = "password"
    let logoURL = UserDefaults.standard.value(forKey: "communityLogo") as? String
    if let url = URL(string: logoURL!) {
        sdDownloader.downloadImage(with: url, options: .continueInBackground, progress: { (_, _, _) in

        }, completed: { (image, _, _, _) in
            self.communityLogoImage.image = image
            self.communityLogoImage.contentMode = .scaleAspectFit
        })

    }
  

Комментарии:

1. Привет, нет. Но для этого я использовал AlamofireImage.