Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTPClient返回400个错误请求,但Postman在C中返回201个#_C#_Json_Api_Dotnet Httpclient - Fatal编程技术网

C# HTTPClient返回400个错误请求,但Postman在C中返回201个#

C# HTTPClient返回400个错误请求,但Postman在C中返回201个#,c#,json,api,dotnet-httpclient,C#,Json,Api,Dotnet Httpclient,我有一个post请求的以下代码 [TestMethod] public async Task<Tuple<int, string>> PostRequestAdditionalAttributeValid0000() { string locationPath = solutionDirectory.ToString(); var jsonText = File.ReadAllText(locationPath +

我有一个post请求的以下代码

    [TestMethod]
    public async Task<Tuple<int, string>> PostRequestAdditionalAttributeValid0000()
    {
        string locationPath = solutionDirectory.ToString();
        var jsonText = File.ReadAllText(locationPath + @"\TestJsons\testdata.json");

        using (var client = new HttpClient())
        {
            var content = new StringContent(json, Encoding.UTF8, "application/json");
            
            //Add client header
            client.DefaultRequestHeaders.Add("client_uuid", "2fd77dd8-ed76-4bba-b0e1-5cda454c8d6e");

            var result = await client.PostAsync(urlPost, content);

            int StatusNumber = (int)result.StatusCode;
            string resultContent = await result.Content.ReadAsStringAsync();

            return new Tuple<int, string>(StatusNumber, resultContent);
        }
    }
非常感谢您的帮助。我在谷歌上搜索和阅读过其他类似的问题,甚至尝试过其他stackoverflow帖子的解决方案,但似乎都不管用

这就是我在400个错误请求旁边遇到的错误

对象引用未设置为对象的实例

在单步执行这行代码之后

var result = await client.PostAsync(urlPost, content);

感谢所有的想法,事实证明我的json对于postman和我的代码来说略有不同,所以400个错误请求实际上是我传递的json的正确结果。(我错过了一个必填字段)


很抱歉给您添麻烦。

用于捕获原始http请求并比较它们以查看差异。您也可以在此处粘贴这两个请求,以便我们可以帮助您!不,这只是HTTP请求的主体。Fiddler是一个本地代理,您可以使用它查看webbrowser、Fiddler等发出的实际HTTP请求。通过这种方式,您可以比较两个请求之间的差异,并分析导致请求失败的原因。根据问题中给出的当前信息,可能没有人能够帮助您。请检查sniffer中的第一个请求,并比较c#和Postman中的标题。c#中的默认标题与Postman不同。让c#头看起来像邮递员。除了状态码之外,服务器是否还提供任何错误消息?例如,您能否导出来自postman的工作请求的cURL表示,并将其添加到问题中?可能您缺少一些标题。您是否可以控制要发布到的服务器?您可以尝试在那里进行调试……顺便说一下:您不应该为每个请求创建一个新的
HttpClient
,而是重用以前创建的实例
var result = await client.PostAsync(urlPost, content);