我看过一个非常相似的问题here(" httpclient-postasync-posting-null-content")。在我的例子中,我在构造函数中创建了HttpClient
的实例:
_client = new HttpClient();
后来在我的一种方法中,我这样做:
_client.DefaultRequestHeaders.Accept.Clear();
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("", Encoding.UTF8, "application/json");
string targetUrl = //the url
var httpResponse = await _client.PostAsync(targetUrl,content);
基本上就是这样。其中一个问题是,如果我离开这一行,请求无效:
var httpResponse = await _client.PostAsync(targetUrl,content);
它实际上永远挂起。所以为了找出发生了什么,我做了这个改变:
var httpResponse = _client.PostAsync(targetUrl, content).Result;
其中只会返回结果但Bad Request
。然而,从Postman执行的相同请求工作得很好。
同样形成我上面已经链接的问题我开始觉得这可能与string
类型有某种关联,并且当您尝试发送{时,某些特定情况在string
请求中{1}}。星期五我想当我尝试发送一些简单的字符串POST
和"23423-32432-sfg-43324"
时,我遇到了类似的问题。再次,它不起作用,但RestSharp
做得很好。
我的假设是Postman
在实际发布之前对Postman
进行了一些修改,但无论如何。有人可以在这里帮助我并最终解释为什么会发生这种情况 - 同样的请求是从string
起作用但在代码中失败了吗?
修改
添加此行可修复它:
Postman
不确定这是特定的还是更常见的问题。可以留下它以防其他人遇到同样的问题。