Bir üçüncü taraf hizmetinden POST verilerini kabul eden bir uygulama yazıyorum.
Bu veriler POST olduğunda 200 HTTP Durum Kodu döndürmeliyim.
Bunu kontrol cihazımdan nasıl yapabilirim?
Bir üçüncü taraf hizmetinden POST verilerini kabul eden bir uygulama yazıyorum.
Bu veriler POST olduğunda 200 HTTP Durum Kodu döndürmeliyim.
Bunu kontrol cihazımdan nasıl yapabilirim?
Yanıtlar:
Oyun kumandanızda böyle bir HttpStatusCodeResult döndürürdünüz ...
[HttpPost]
public ActionResult SomeMethod(...your method parameters go here...)
{
// todo: put your processing code here
//If not using MVC5
return new HttpStatusCodeResult(200);
//If using MVC5
return new HttpStatusCodeResult(HttpStatusCode.OK); // OK = 200
}
int
Yanı sıra bir aşırı yükler vardır HttpStatusCode
.
200, başarılı bir istek için yalnızca normal HTTP üstbilgisidir. İhtiyacınız olan tek şey buysa , kontrol cihazına sahip olunreturn new EmptyResult();
HttpStatusCodeResult(...)
yerine, neyi başarmaya çalıştığınız konusunda çok daha açık olduğu için kullanmalısınız. Kabul edilen cevaba göre.
Yanıtın durum kodunu aşağıdaki gibi 200 olarak ayarlayabilirsiniz
public ActionResult SomeMethod(parameters...)
{
//others code here
...
Response.StatusCode = 200;
return YourObject;
}
[HttpPost]
public JsonResult ContactAdd(ContactViewModel contactViewModel)
{
if (ModelState.IsValid)
{
var job = new Job { Contact = new Contact() };
Mapper.Map(contactViewModel, job);
Mapper.Map(contactViewModel, job.Contact);
_db.Jobs.Add(job);
_db.SaveChanges();
//you do not even need this line of code,200 is the default for ASP.NET MVC as long as no exceptions were thrown
//Response.StatusCode = (int)HttpStatusCode.OK;
return Json(new { jobId = job.JobId });
}
else
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { jobId = -1 });
}
}
Bunu .NET Core'da yapmanın yolu (yazma sırasında) aşağıdaki gibidir:
public async Task<IActionResult> YourAction(YourModel model)
{
if (ModelState.IsValid)
{
return StatusCode(200);
}
return StatusCode(400);
}
StatusCode yöntemi döndürür bir tür StatusCodeResult uygulayan IActionResult ve böylece bir eylem dönüş türü kullanılabilir.
Bir refactor olarak, HTTP durum kodlarının bir numaralandırmasını kullanarak okunabilirliği artırabilirsiniz:
return StatusCode((int)HttpStatusCode.OK);
Ayrıca, yerleşik sonuç türlerinden bazılarını da kullanabilirsiniz. Örneğin:
return Ok(); // returns a 200
return BadRequest(ModelState); // returns a 400 with the ModelState as JSON
Ref. StatusCodeResult - https://docs.microsoft.com/tr-tr/dotnet/api/microsoft.aspnetcore.mvc.statuscoderesult?view=aspnetcore-2.1