我正在尝试使用HttpClient
通过POST向我的Web服务发送JSON。
发送方法非常简单:
HttpClient _httpClient = new HttpClient();
public async Task<HttpStatusCode> SendAsync(Data data)
{
string jsonData = JsonConvert.SerializeObject(data);
var content = new StringContent(
jsonData,
Encoding.UTF8,
"application/json");
HttpResponseMessage response = await _httpClient.PostAsync(_url, content);
return response.StatusCode;
}
在服务器端,我有一个WebAPI控制器,其中包含以下方法:
[HttpPost]
[ActionName("postdata")]
public async Task<HttpResponseMessage> PostData([FromBody] string jsonParam)
{
/// here the jsonParam is null when receiving from HttpClient.
// jsonParam gets deserialized, etc
}
此方法中的jsonParam值为空。如果我将jsonData复制粘贴到请求发送器(我使用Postman)中,一切都成功了。这与我构建内容和使用 HttpClient 相关,但我无法弄清楚问题出在哪里。有人能看出问题在哪吗?