urllib2 - почтовый запрос

Пытаюсь выполнить простой POST-запрос с urllib2. Однако ответ сервера указывает, что он получает простой GET. Я проверил тип исходящего запроса, но он установлен на POST.
Чтобы проверить, ведет ли себя сервер так, как я ожидаю, я попытался выполнить запрос GET с (бывшими POST-) данными, объединенными с URL-адресом. Это дало мне ответ, которого я ожидал.
Кто-нибудь знает, что я неправильно понял?

def connect(self):
    url = 'http://www.mitfahrgelegenheit.de/mitfahrzentrale/Dresden/Potsdam.html/'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    header = { 'User-Agent' : user_agent }

    values = {
      'city_from' : 69,
      'radius_from' : 0,
      'city_to' : 263,
      'radius_to' : 0,
      'date' : 'date',
      'day' : 5,
      'month' : 03,
      'year' : 2012,
      'tolerance' : 0
    }

    data = urllib.urlencode(values)
    # req = urllib2.Request(url+data, None, header) # GET works fine
    req = urllib2.Request(url, data, header)  # POST request doesn't not work

    self.response = urllib2.urlopen(req)

Это похоже на проблему, подобную той, что обсуждалась здесь: Python URLLib / URLLib2 POST, но я совершенно уверен, что в моем случае косая черта не отсутствует.;)

Боюсь, это может быть глупым заблуждением, но я уже часами размышляю!



РЕДАКТИРОВАТЬ: Удобная функция для печати:

def response_to_str(response):
    return response.read()

def dump_response_to_file(response):
    f = open('dump.html','w')
    f.write(response_to_str(response))



РЕДАКТИРОВАТЬ 2: Разрешение:

Я нашел инструмент для фиксации реального взаимодействия с сайтом, http://fiddler2.com/fiddler2/. По-видимому, сервер берет данные из формы ввода, несколько раз перенаправляет, а затем делает запрос GET с этими данными, просто добавленными к URL-адресу.
С urllib2 все в порядке, и я приношу свои извинения за злоупотребление вашим временем!

13
задан Community 23 May 2017 в 12:08
поделиться