表单数据请求中包含许多具有相同名称的元素

时间:2018-08-31 08:34:44

标签: python python-3.x request

我确实需要为网页帖子创建一个长参数列表,这不是基于字典的多个相同键的原因。

Chromium在原始请求中将此字符串显示为表单数据

p_action=RUN&p_mode=1&p_exec_mode=&p_page_url=&p_redirect_url=&p_reference_path=&p_arg_names=_title&p_arg_values=ARRAYSTART&p_arg_values=kschulz&p_arg_values=ARRAYEND&p_arg_names=reqnum&p_arg_values=ARRAYSTART&p_arg_values=0&p_arg_values=ARRAYEND&p_arg_names=_orderby_ord_1&p_arg_values=ASC

...。接下来还会有更多条目。

我知道这是一个疯狂的表格数据,但是我无法更改。  p_arg_names被多次使用,有时后面还会有多个p_arg_value条目。甚至还有Array Start和Array Stop ...所以我也需要正确的顺序。

params=dict ...在这里不能工作。

如何为requests.push(URL,DATA)提供更长的纯字符串而不丢失

Content-Type:application/x-www-form-urlencoded

2 个答案:

答案 0 :(得分:0)

使用requests模块

import requests

request.post('http://127.0.0.1/8000/', params= {'p_arg_names': ['a', 'b']})

结果

  

发布http://127.0.0.1/8000/?p_arg_names=a&p_arg_names=b HTTP / 1。

答案 1 :(得分:0)

params dict 可以在这里工作,为其提供值列表。例如:

r = requests.get('http://example.com', {'something': [1, 2, 3, 4, 5]})

(使用.get / .put / .post / .patch-或上面.push表示的意思)

服务器将收到一个请求,例如:

"GET /?something=1&something=2&something=3&something=4&something=5 HTTP/1.1" 200 396 "-" "python-requests/2.18.4"