我在auto-cad中构建插件,并在实体框架中使用类库和web API,但每次我尝试在我的类库中使用web API时,响应都会返回“找不到”。这是我的类库代码
[CommandMethod("Doit")]
public void Test()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
Checker c = new Checker() { WholeArea = 1000, BuildingArea = 200, Status = 1 };
using (var client = new HttpClient())
{
client.BaseAddress =new Uri("http://localhost:52133/api");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.PostAsJsonAsync("Checker", c).Result;
if (response.IsSuccessStatusCode)
{
ed.WriteMessage("Hello data");
}
else
{
ed.WriteMessage((response.StatusCode).ToString());
}
}
}这是我的控制器Post方法
// POST: api/Checkers
[ResponseType(typeof(Checker))]
public IHttpActionResult PostChecker(Checker checker)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Checkers.Add(checker);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = checker.ID }, checker);
}首先:现在我不知道返回没有找到的代码有什么问题--如果有必要使用.net内核在auto-cad中构建插件
发布于 2018-12-20 19:28:58
您看到的是404响应代码吗?你有没有试过从邮递员或小提琴手那里调用api方法?我总是尝试从其中之一进行调用,这样您就可以确定api是否正确响应。这将告诉您问题是否出在您的消费代码中。
我注意到你正在使用PostAsJsonAsync来调用api方法,但是api方法没有被标记为异步,这会是问题所在吗?
api方法也没有使用HttpPost属性进行修饰;我不确定这是否是必需的,但我会分别尝试每一个
https://stackoverflow.com/questions/53866053
复制相似问题