C# 在Python中使用StringContent(System.Net.Http)发出post请求的等效方法是什么

C# 在Python中使用StringContent(System.Net.Http)发出post请求的等效方法是什么,c#,python,http,python-requests,C#,Python,Http,Python Requests,我有一些C#代码,可以执行以下post请求: string postData = newFormUrlEncodedContent(params).ReadAsStringAsync().Result; var postContent = new StringContent(postData, UTF8Encoding.UTF8, "application/x-www-form-urlencoded"); var responseMessage = httpClient.PostAsync(u

我有一些C#代码,可以执行以下post请求:

string postData = newFormUrlEncodedContent(params).ReadAsStringAsync().Result;
var postContent = new StringContent(postData, UTF8Encoding.UTF8, "application/x-www-form-urlencoded");

var responseMessage = httpClient.PostAsync(url, postContent).Result;
我想使用这个库在Python中做同样的事情。这就是我所拥有的:

headers = {'content-type':'application/x-www-form-urlencoded'}
postContent = requests.post(url, params=params, headers=headers, cookies=previousResponse.cookies)
但是Python代码的状态代码是404,而C请求返回200。参数可能有问题,因为我通过一些正则表达式匹配从以前的请求中检索这些参数,但这似乎起作用了

编辑:我认为设置params参数是为了get请求,而不是post请求。我还相信
请求

通常,您希望发送一些表单编码的数据,就像HTML表单一样。为此,只需向数据参数传递一个字典。当请求发出时,您的数据字典将自动进行表单编码

所以现在我有:

postContent = requests.post(url, data = params, cookies = previousResponse.cookies)
现在
postContent.status\u code==500
。堆栈跟踪表明数据在根级别无效。我会调查的