使用 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 很好地格式化了显示无效参数的响应文本。参数已更正,一切正常。