В java, как изменить заголовки моего url.openStream (); [Дубликат]

Много способов сделать это в Swift:

Мы проверим приведенную ниже модель (мы можем делать только чувствительный к регистру поиск здесь):

class func isUserUsingAnIpad() -> Bool {
    let deviceModel = UIDevice.currentDevice().model
    let result: Bool = NSString(string: deviceModel).containsString("iPad")
    return result
}

Мы проверяем модель ниже (здесь мы можем делать чувствительный к регистру / нечувствительный поиск):

    class func isUserUsingAnIpad() -> Bool {
        let deviceModel = UIDevice.currentDevice().model
        let deviceModelNumberOfCharacters: Int = count(deviceModel)
        if deviceModel.rangeOfString("iPad",
                                     options: NSStringCompareOptions.LiteralSearch,
                                     range: Range<String.Index>(start: deviceModel.startIndex,
                                                                end: advance(deviceModel.startIndex, deviceModelNumberOfCharacters)),
                                     locale: nil) != nil {
            return true
        } else {
            return false
        }
   }

UIDevice.currentDevice().userInterfaceIdiom ниже возвращает iPad только в том случае, если приложение предназначено для iPad или Universal. Если это приложение для iPhone, запущенное на iPad, то этого не произойдет. Поэтому вы должны проверить модель. :

    class func isUserUsingAnIpad() -> Bool {
        if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad {
            return true
        } else {
            return false
        }
   }

Этот фрагмент ниже не компилируется, если класс не наследует UIViewController, иначе он отлично работает. Несмотря на то, что UI_USER_INTERFACE_IDIOM() возвращает iPad только в том случае, если приложение предназначено для iPad или Universal. Если это приложение для iPhone, запущенное на iPad, то этого не произойдет. Поэтому вы должны проверить модель. :

class func isUserUsingAnIpad() -> Bool {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) {
        return true
    } else {
        return false
    }
}
26
задан QuantumMechanic 22 June 2012 в 01:03
поделиться

3 ответа

Откройте URL с помощью URL.openConnection. При желании, нажмите HttpURLConnection. Вызовите URLConnection.setRequestProperty / addRequestProperty.

Значение заголовка User-Agent по умолчанию устанавливается из системного свойства "http.agent". PlugIn и WebStart позволяют установить это свойство.

42
ответ дан Tom Hawtin - tackline 20 August 2018 в 07:02
поделиться
  • 1
    Обязательно различайте addRequestProperty и setRequestProperty, где это необходимо. Вариант установки перезаписывает любой существующий заголовок с тем же ключом. Вариант добавления добавляет и дополнительный экземпляр заголовка, если он уже существует. – laz 26 January 2009 в 20:53
  • 2
    Добавляет ли addRequestProperty новую строку (другими словами, запросы будут иметь 2 строки с одинаковыми ключами) или добавляет ли она запятую и новое значение к существующей строке? – Pacerier 26 December 2011 в 14:45
  • 3
    @leoger Спасибо за помощь = D – Pacerier 3 May 2012 в 03:07
  • 4
    @leoger На самом деле addRequestProperty добавит ключ, даже если ключ уже существует, поэтому, если вы вызываете addRequestProperty («User-Agent», «A»), тогда вызывайте addRequestProperty («User-Agent», «B») заголовки будут включать в себя как «User-Agent: A», и «Пользователь-агент: B». Ответ лаза верен. Лучший способ - использовать Wireshark для захвата самого пакета и посмотреть, как находятся заголовки. – Daniel Chow 11 March 2014 в 08:31
  • 5
    Фактически использование httpbin.org , вероятно, является лучшим решением, чем использование wirehark. – Jonathan 16 December 2014 в 15:45

Если вы используете Apache HttpClient для управления вашим программным HTTP-подключением, вы получаете чрезвычайно полезный API, который позволяет создавать соединения (и, возможно, автоматическое повторное подключение при сбое), устанавливать заголовки, сообщения и получать, удобные методы для получения возвращаемого контента и многое другое.

2
ответ дан j pimmel 20 August 2018 в 07:02
поделиться
  • 1
    Я знаю, что этот пост старый, но если кто-то его читает: HttpURLConnection теперь предпочитается над HttpClient, см. этот пост в блоге для информации. – kamituel 17 June 2013 в 07:28

Я решил свою проблему. Мы можем просто отправить заголовок в application / json и передать тело как объект json. Это просто решает проблему.

0
ответ дан Nayanava 20 August 2018 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: