使用 RestSharp 和 HTTPClient 的 HTTP Post 错误 400 - 如何诊断?
HTTP Post Error 400 using RestSharp and HTTPClient - How to Diagnose?
我正在将 java 应用程序移植到 C#。有一个带有一些键值对的 HTTP post 请求。无需身份验证。我还获得了一个工作 python 示例,它以类似的方式发布。终点很好。
我尝试了 HTTPClient 和 RestSharp,结果相似。
我想知道我是否做错了,我正在做这样的事情:
var values = new Dictionary<string, string>
{
{ "A", a },
{ "B", b },
{ "C", c },
{ "D", d }
}
var content = new FormUrlEncodedContent(values);
Uri u = new Uri(myURI);
var response = await client.PostAsync(u,content);
var responseString = await response.Content.ReadAsStringAsync();
python 与此非常相似:
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("https://httpbin.org/post", data=payload)
>>> print(r.text)
java 和 python 示例看起来非常相似,构建参数列表和 posting。其余的 sharp 看起来很相似,但也因相同的错误而失败。我正在寻找一些我不知道的东西来尝试。是 header 还是内容类型更改?提交数据的不同方式?我迷路了。
根据问题中的评论,建议 Fiddler 诊断问题。
Fiddler 很好地格式化了显示无效参数的响应文本。参数已更正,一切正常。
我正在将 java 应用程序移植到 C#。有一个带有一些键值对的 HTTP post 请求。无需身份验证。我还获得了一个工作 python 示例,它以类似的方式发布。终点很好。
我尝试了 HTTPClient 和 RestSharp,结果相似。
我想知道我是否做错了,我正在做这样的事情:
var values = new Dictionary<string, string>
{
{ "A", a },
{ "B", b },
{ "C", c },
{ "D", d }
}
var content = new FormUrlEncodedContent(values);
Uri u = new Uri(myURI);
var response = await client.PostAsync(u,content);
var responseString = await response.Content.ReadAsStringAsync();
python 与此非常相似:
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("https://httpbin.org/post", data=payload)
>>> print(r.text)
java 和 python 示例看起来非常相似,构建参数列表和 posting。其余的 sharp 看起来很相似,但也因相同的错误而失败。我正在寻找一些我不知道的东西来尝试。是 header 还是内容类型更改?提交数据的不同方式?我迷路了。
根据问题中的评论,建议 Fiddler 诊断问题。
Fiddler 很好地格式化了显示无效参数的响应文本。参数已更正,一切正常。