asp.net - ASP.NET MVC 中的 post 数据中的响应数据为空
问题描述
我向 API 发送一个请求,我得到 null 但是当我大摇大摆地执行相同的 API 时,我得到了结果。
下面是我的 ASP.NET 代码:
HttpClient client = new HttpClient();
var data = new
{
test = "mydata"
};
client.BaseAddress = new Uri("weburl.com");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
using (client)
{
HttpResponseMessage res = await client.PostAsJsonAsync("api/test", data);
if (res.ReasonPhrase == "OK")
{
res.EnsureSuccessStatusCode();
if (res.IsSuccessStatusCode)
{
var resualt = res.Content;
var res2 = await resualt.ReadAsStringAsync();
var json = JsonConvert.DeserializeObject<JsonModelApi>(res2);
if (json.Succeed)
{
return json.Result;
}
else
return null;
}
else
return null;
}
else
return null;
}
HttpResponseMessage res = await client.PostAsJsonAsync("api/test", data);
资源输出:
{StatusCode:200,ReasonPhrase:'OK',版本:1.1,内容:System.Net.Http.StreamContent,标题:{ 变化:接受编码保护:SA 日期:2018 年 9 月 2 日星期日 11:20:16 GMT 设置-Cookie:__cfduid=dd54b1f82b2eb402e21bae199246157631535887216;expires=周一,02-Sep-19 11:20:16 GMT;路径=/; 域=.myweb;HttpOnly X-Powered-By: Huricane 11 X-Powered-By: ASP.NET Server: cloudflare CF-RAY: 453f961cb483bead-FRA Connection: keep-alive Content-Length: 0 }}
有谁能够帮助我?
谢谢你。
解决方案
我用这段代码解决了这个问题:
client.BaseAddress = new Uri("mywebapi");
client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
将用户代理添加到 HttpClient 后,我可能会产生以下内容:
client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0");
推荐阅读
- python - 将字符串列表转换为 pandas 数据框
- java - 无法通过 RestTemplate 获取 JSON
- swift - 如何在 Swift 中使用 Core Animation 制作链式动画?
- php - 在 PHP 中显示 Json 的特定值
- python - 如何根据另一行的关键字更新一行?
- angular - ngbDropdownItem 上的单击事件在 iPhone 中无法使用 Zoom in
- sockets - NETWORK 层的 Windivert ProcessId
- c# - 投射 IQueryable 的潜在问题
到 IAsyncEnumerable - highcharts - 如何从 highchart 中获取 Yaxis 值
- html - 如何定位表单文本标签?