C# 在Python中使用StringContent(System.Net.Http)发出post请求的等效方法是什么
我有一些C#代码,可以执行以下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
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
。堆栈跟踪表明数据在根级别无效。我会调查的