C# Can';t将字符串转换为system.Net.HttpContent
在这里,我试图从服务中获取数据:C# Can';t将字符串转换为system.Net.HttpContent,c#,json,asp.net-web-api,dotnet-httpclient,C#,Json,Asp.net Web Api,Dotnet Httpclient,在这里,我试图从服务中获取数据: public async Task<IHttpActionResult> ValidateSesion() { var values = new Dictionary<string, string>{ { "productId", "1" }, { "productKey", "Abc6666" }, { "userName", "OPPO" }, }; var js
public async Task<IHttpActionResult> ValidateSesion()
{
var values = new Dictionary<string, string>{
{ "productId", "1" },
{ "productKey", "Abc6666" },
{ "userName", "OPPO" },
};
var json = JsonConvert.SerializeObject(values, Formatting.Indented);
// var content = new FormUrlEncodedContent(json);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("http://172.116.12.172:8014/iadmin/validate", json);
var responseString = await response.Content.ReadAsStringAsync();
return Ok(responseString);
}
更改您的返回声明,如
return Content(responseString);
您不能发布原始字符串,必须将其包装在StringContent中:
newstringcontent(json)代码>
这应该可以做到:
public async Task<IHttpActionResult> ValidateSesion()
{
var values = new Dictionary<string, string>{
{ "productId", "1" },
{ "productKey", "Abc6666" },
{ "userName", "OPPO" },
};
var json = JsonConvert.SerializeObject(values, Formatting.Indented);
var stringContent = new StringContent(json);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("http://172.116.12.172:8014/iadmin/validate", stringContent);
var responseString = await response.Content.ReadAsStringAsync();
return Ok(responseString);
}
public异步任务ValidateSesion()
{
var值=新字典{
{“productId”,“1”},
{“productKey”,“Abc6666”},
{“用户名”,“OPPO”},
};
var json=JsonConvert.serialized对象(值、格式、缩进);
var stringContent=新的stringContent(json);
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
var response=wait client.PostAsync(“http://172.116.12.172:8014/iadmin/validate",内容),;
var responseString=await response.Content.ReadAsStringAsync();
返回Ok(responseString);
}
您能否提供错误的完整跟踪信息?这可以帮助我们确定错误发生的确切位置…PostAsync方法都不接受字符串。尝试传递字符串会引发编译错误。
public async Task<IHttpActionResult> ValidateSesion()
{
var values = new Dictionary<string, string>{
{ "productId", "1" },
{ "productKey", "Abc6666" },
{ "userName", "OPPO" },
};
var json = JsonConvert.SerializeObject(values, Formatting.Indented);
var stringContent = new StringContent(json);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("http://172.116.12.172:8014/iadmin/validate", stringContent);
var responseString = await response.Content.ReadAsStringAsync();
return Ok(responseString);
}