【问题标题】:Missing headers on POST request with python requests使用 python 请求的 POST 请求中缺少标头
【发布时间】:2017-07-14 15:31:57
【问题描述】:

我目前正在使用 python 请求模块在网站上执行自动 HTTP 任务。 问题是我在控制台上得到的结果与在浏览器上不同。

这是我在浏览器上发出 POST 请求时得到的结果:

这是我通过 python requests 模块发出 POST 请求并在请求上运行.headers 方法时得到的:

    {
      'Date': 'Fri, 14 Jul 2017 15:19:22 GMT',
      'Content-Type': 'text/html; charset=utf-8',
      'Transfer-Encoding': 'chunked',
      'Connection': 'keep-alive',
      'Cache-Control': 'private',
      'Location': '/cart/view',
      'Set-Cookie': 'png.notice=9Hz8GWQ38JQZqTrqcsnn1J5nfgIZt71orHtf71mI+rwqFpQg4RnV7BqZni/GgIS/SmUnC4jgnhjQuDhZNW2adxeLctG+bToT0wTTbgxe40t5RmbVv1viuH2gkL1eH2xN3IavOUBhVXm+JlQrmVnHLocqjgvWi8wAClLYmrShY1U2ege9; expires=Fri, 14-Jul-2017 15:34:03 GMT; path=/; HttpOnly',
      'X-Powered-By': 'ASP.NET',
      'X-UA-Compatible': 'IE=Edge,chrome=1',
      'Server': 'cloudflare-nginx',
      'CF-RAY': '37e575befbf43c35-CDG'
    }

请注意这两个结果是如何完全不同的。 我正在尝试在响应标头中获取“位置”标头(以“https://live.adyen.com/hpp...”开头的标头。 我在这里做错了什么?

编辑:这是我的源代码:

    request = session.post('https://www.nakedcph.com/cart/process', data=user_info)
    request.url
    # outputs 'https://www.nakedcph.com/cart/view' (probably the issue)
    request.headers
    # outputs the headers (but not all of them?)

PS:发出 POST 请求后,网站会从 Response 标头重定向到“Location”标头内的 URL。

【问题讨论】:

  • 你是如何通过python发出请求的?你的代码是什么样的?您通过 python 传递的标头与浏览器的标头相同。这是一个重要的细节。
  • 刚刚添加了我的源代码。我不明白请求模块正在输出什么样的标头。是响应头还是请求头?
  • 请求标头。试试session.post('https://www.nakedcph.com/cart/process', headers={'User-Agent' : 'Mozilla/5.0'}, data=user_info)
  • 它输出相同的标题。我的猜测是它打印出 request.url 的标头,这与我用来制作 POST 的 url 不同。
  • 发布 POST 后网站似乎正在重定向到另一个 url。

标签: python http http-post python-requests


【解决方案1】:

我想通了。错过了发布请求中的一些参数。我的错。

【讨论】:

    猜你喜欢
    • 2022-10-18
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2018-04-15
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    相关资源
    最近更新 更多