Как Вы отправляете ГЛАВНЫЙ Запрос HTTP в Python 2?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

110
задан Anthony G - justice for Monica 27 June 2016 в 13:37
поделиться

5 ответов

редактирование : Этот ответ работает, но в наше время необходимо просто использовать запросы библиотека, как упомянуто другими ответами ниже.

<час>

Использование httplib.

>>> import httplib
>>> conn = httplib.HTTPConnection("www.google.com")
>>> conn.request("HEAD", "/index.html")
>>> res = conn.getresponse()
>>> print res.status, res.reason
200 OK
>>> print res.getheaders()
[('content-length', '0'), ('expires', '-1'), ('server', 'gws'), ('cache-control', 'private, max-age=0'), ('date', 'Sat, 20 Sep 2008 06:43:36 GMT'), ('content-type', 'text/html; charset=ISO-8859-1')]

существует также getheader(name) для получения определенного заголовка.

103
ответ дан Anthony G - justice for Monica 24 November 2019 в 03:09
поделиться

Вероятно, легче: используйте urllib или urllib2.

>>> import urllib
>>> f = urllib.urlopen('http://google.com')
>>> f.info().gettype()
'text/html'

f.info () является подобным словарю объектом, таким образом, можно сделать f.info () ['тип контента'], и т.д.

http://docs.python.org/library/urllib.html
http://docs.python.org/library/urllib2.html
http://docs.python.org/library/httplib.html

, документы отмечают, что httplib обычно не используется непосредственно.

-4
ответ дан 24 November 2019 в 03:09
поделиться

Кроме того, при использовании httplib (по крайней мере, в 2.5.2) попытка прочитать ответ на запрос HEAD заблокирует (в режиме чтения) и впоследствии завершится неудачей. Если вы не выполнили чтение в ответе, вы не можете отправить еще один запрос на соединение, вам нужно будет открыть новый. Или примите большую задержку между запросами.

1
ответ дан 24 November 2019 в 03:09
поделиться

Для меня это было так:

«Все события могут быть живыми событиями»

«Мы очень гордимся тем, что считают некоторые Добавленные события среди тех поддерживается живым (). 1.4 вводит Поддержка перекрестных браузеров для изменений, Отправить, focusin, focusout, mouseender, и MouseLeave через мероприятие Делегация в .Live (). "

Я ждал этого на событии изменения в возрасте!

-121--1002654-

Urllib2 может использоваться для выполнения запроса головы. Это немного приятнее, чем использовать httplib, поскольку urllib2 анализирует URL-адрес для вас вместо того, чтобы вы требовать разделить URL в имя хоста и путь.

>>> import urllib2
>>> class HeadRequest(urllib2.Request):
...     def get_method(self):
...         return "HEAD"
... 
>>> response = urllib2.urlopen(HeadRequest("http://google.com/index.html"))

Заголовки доступны через ответ .info () как раньше. Интересно, что вы можете найти URL-адрес, который вы были перенаправлены на:

>>> print response.geturl()
http://www.google.com.au/index.html
107
ответ дан 24 November 2019 в 03:09
поделиться

Я обнаружил, что httplib немного быстрее urllib2. Я рассчитал время для двух программ - одна с использованием httplib, а другая с использованием urllib2 - отправка запросов HEAD на 10 000 URL-адресов. Httplib был быстрее на несколько минут. Общая статистика httplib : реальная 6m21.334s user 0m2.124s sys 0m16.372s

и общая статистика urllib2 были: real 9m1.380s user 0m16.666s sys 0m28.565s

Кто-нибудь еще внес свой вклад в это?

1
ответ дан 24 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

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