使用python请求绕过HTTP POST上的错误414

使用python请求绕过HTTP POST上的错误414,python,rest,http,post,python-requests,Python,Rest,Http,Post,Python Requests,我正在使用python请求HTTP POST将数据发送到我不拥有的某个第三方网站。但我不能让它工作,因为我有414状态码 url = "http://someurl.com" headers = { 'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8" } params = {'input': "Lorem ipsum... very long string"} result = requests.post(u

我正在使用python请求HTTP POST将数据发送到我不拥有的某个第三方网站。但我不能让它工作,因为我有414状态码

url = "http://someurl.com"
headers = {
   'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8"
}
params = {'input': "Lorem ipsum... very long string"}
result = requests.post(url, params=params, headers=headers)
print(result.status_code)

我怎样才能做到这一点呢?

看看这些文档,似乎
result=requests.post(url,params=params,headers=headers)
应该是
result=requests.post(url,data=params,headers=headers)
(归功于John La Rooy)


IIRC
params
标志表示您看到的附加在url末尾的参数,而
data
是POST数据。

查看文档,似乎
result=requests.POST(url,params=params,headers=headers)
应该是
result=requests.POST(url,data=params,headers=headers)
(归功于约翰·拉鲁伊)


IIRC
params
标志表示您看到的附加在url末尾的params,而
data
是POST数据。

这是他们的服务器的错误-您无法在您的一端修复它。您可以使用较短的字符串吗?(B/c 414是“url太长,无法处理”)您确定不将
params
作为“数据”传递吗例如,
requests.post(url,data=params,headers=headers)
@John La Rooy,对于有限的字符串,它对params有效,现在我使用了data arg,是的,它有效。谢谢。这是他们服务器的一个错误-你无法修复它。你能使用更短的字符串吗?(B/c 414是“url太长,无法处理”)您确定不想将
params
作为“数据”传递,例如
requests.post(url,data=params,headers=headers)
@John La Rooy,它对有限字符串的参数有效,现在我使用了数据参数,是的,它有效。谢谢。我使用Firebug找到了如何将数据发布到站点。我查看了请求方法中的参数,找到了一个“输入”参数,我可以注入数据。它可以很好地适用于多达1000个字符的字符串。现在我尝试了你的建议,用数据代替PARAMS,和VoILA,它工作了!谢谢。@ MarkAnthonyDelaCruz,如果这解决了你的问题,请考虑点击“接受回答”按钮和投票:我使用Firebug找到如何将数据发布到站点。我查看了Request方法中的参数,发现了一个“input”参数,可以在其中注入数据。它可以很好地处理多达1000个字符的字符串。现在我尝试了你的建议,使用数据而不是参数,瞧,成功了!谢谢。@ MarkAnthonyDelaCruz,如果这解决了你的问题,请考虑点击“接受答案”按钮和投票: