Post 带线程的请求
Post request with threading
这是我的代码片段:
urls = ["http://goggle.com", "http://linux.com"]
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
data= {"k1": "v1"}
for url in urls:
t = threading.Thread(target=requests.post, args=(url,), kwargs={'json': data, 'headers': headers})
threads.append(t)
t.start()
for thread in threads:
thread.join()
但最后我得到了这个错误TypeError: post() got multiple values for argument 'json'
。那么调用post请求并在线程lyb中传递url、json和headers的合适方法是什么。
您没有正确设置 threading.Thread
。我建议将目标参数包装在一个函数中。
def post_requests(req):
r=requests.post(req,json=data, headers=headers)
print(r)
return r
您不需要包含 kwargs
,然后 运行 您的脚本包含以下内容:
threads = []
for url in urls:
t = threading.Thread(target=post_requests, args=(url,))
threads.append(t)
t.start()
for thread in threads:
thread.join()
你的输出:
<Response [405]>
<Response [200]>
您可能想检查为什么 "http://goggle.com"
returns [405]
这是我的代码片段:
urls = ["http://goggle.com", "http://linux.com"]
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
data= {"k1": "v1"}
for url in urls:
t = threading.Thread(target=requests.post, args=(url,), kwargs={'json': data, 'headers': headers})
threads.append(t)
t.start()
for thread in threads:
thread.join()
但最后我得到了这个错误TypeError: post() got multiple values for argument 'json'
。那么调用post请求并在线程lyb中传递url、json和headers的合适方法是什么。
您没有正确设置 threading.Thread
。我建议将目标参数包装在一个函数中。
def post_requests(req):
r=requests.post(req,json=data, headers=headers)
print(r)
return r
您不需要包含 kwargs
,然后 运行 您的脚本包含以下内容:
threads = []
for url in urls:
t = threading.Thread(target=post_requests, args=(url,))
threads.append(t)
t.start()
for thread in threads:
thread.join()
你的输出:
<Response [405]>
<Response [200]>
您可能想检查为什么 "http://goggle.com"
returns [405]