Python: urllib2.urlopen (URL, данные), Почему у Вас есть к urllib.urlencode () данные?

Я думал, что сообщение отправило всю информацию в HTTP-заголовках при использовании сообщения (на меня не хорошо доносят этот предмет, очевидно), таким образом, я смущен, почему у Вас есть к urlencode () данные к a key=value&key2=value2 формат. Как то форматирование играет роль при использовании POST?:

# Fail
data = {'name': 'John Smith'}
urllib2.urlopen(foo_url, data)

но

# Success
data = {'name': 'John Smith'}
data = urllib.urlencode(data)
urllib2.urlopen(foo_url, data)
7
задан orokusaki 3 February 2010 в 15:20
поделиться

2 ответа

Это связано с заголовком Content-Type: клиент должен иметь представление о том, как кодируются данные POST, иначе как он узнает, как декодировать его?

Стандартный способ сделать это - использовать формат кодирования application / x-www-form-urlencoded .

Теперь, если вопрос: «Зачем нам нужно кодировать?», Ответ будет «потому что нам нужно иметь возможность очерчивать полезную нагрузку в HTTP-контейнере».

9
ответ дан 6 December 2019 в 23:05
поделиться

Данные должны быть в стандартном формате application / x-www-form-urlencoded . urlencode преобразует ваши аргументы в строку в кодировке url.

2
ответ дан 6 December 2019 в 23:05
поделиться
Другие вопросы по тегам:

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