- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个后端 Controller 方法
[Route("{ropeId}/segments")]
[HttpPut]
public async Task<IActionResult> Put([NotNull] [FromBody] IEnumerable<Segment> segments)
{
Debug.WriteLine("In here!");
}
我可以在 Rider 中使用便签本打出这样的成绩:
PUT https://localhost:6001/api/ropes/3/segments
Accept: */*
Cache-Control: no-cache
Content-Type: application/json
[{"SegmentNo":1,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":16,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}, {"SegmentNo":50,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":69,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":101,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}, {"SegmentNo":106,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":128,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}]
分割模型:
public sealed class Segment
{
public Segment(short segmentNo,
byte ropeId,
DateTime lastReceived,
double bendDamage,
double temperature,
byte loadLevel)
{
SegmentNo = segmentNo;
RopeId = ropeId;
LastReceived = lastReceived;
BendDamage = bendDamage;
Temperature = temperature;
LoadLevel = loadLevel;
}
public short SegmentNo { get; }
public byte RopeId { get; }
public DateTime LastReceived { get; }
public double BendDamage { get; }
public double Temperature { get; }
public byte LoadLevel { get; }
}
我无法通过 httpClient PutAsync 调用访问它。
我试过:
var httpContent = new StringContent(updatedSegments);
var response = await httpClient.PutAsync(@"https://localhost:6001/api/ropes/3/segments", httpContent);
但是我得到一个 SerializeError。
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
Route matched with {action = "Put", controller = "Ropes"}. Executing action WEBAPI.Controllers.RopesController.Put (WEBAPI)
info: Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor[1]
Executing ObjectResult, writing value of type 'Microsoft.AspNetCore.Mvc.SerializableError'.
我的 PutAsync 调用有什么问题?
就像我说的,这适用于 Postman/PUT scratch。
如果我这样做
var s = await httpContent.ReadAsStringAsync();
s.Print();
我得到上面的 JSON,所以我认为问题是我需要以某种方式在 httpContent 上设置 header 以告诉它它是 application/json?
最佳答案
您是否尝试过在 httpContent 对象的构造函数中指定内容类型?我使用 httpClient 调用并声明类型对我有用,如下所示:
var httpContent= new StringContent(updatedSegments.ToString(Newtonsoft.Json.Formatting.None), Encoding.UTF8, "application/json");
让我知道它是否也对你有用
关于C# HttpClient - PutAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57041997/
我有一个后端 Controller 方法 [Route("{ropeId}/segments")] [HttpPut] public async Task Put([NotNull] [FromBod
我正在使用 Apache Ignite Cache 进行事务处理。目前我使用常规的cache.put()方法,但想知道我是否应该更好地使用推荐的putAsync()?如果使用异步方法,Transact
我们有一个第三方 API,它同时具有 GET 和 PUT 方法。第三方 API 仅以 XML 格式返回响应和接受。 api 看起来像 https://bh.org/api/v2/prj/A152 返回
我四处搜索,最终没有找到有关 bluebird 的 promisified 请求的 putAsync 方法的信息。 var request = require('request'); var Prom
在 Controller 上Put如下: [HttpPut] [ActionName("putname")] public JsonResult putname(string name) {
如何创建一个 IHttpContent 对象,其中包含 PutAsync 请求正文的内容? 请求是这样的: IHttpContent myHttpContent = ??? var response
几个小时以来,我一直在努力找出问题所在,但就是找不到问题所在。 通过 Mvc 应用程序,put 方法不会被命中,请求不会发生。但是当我在 fiddler 中测试它时,api 中的 PutMethod
我有一个可以完美发布数据的POST方法。 查看文档似乎 PATCH(或 PUT)应该看起来完全一样,只需使用 PutAsync 而不是 PostAsync。 好吧,我收到以下错误: + p
我是一名优秀的程序员,十分优秀!