API 컨트롤러를 작성하려고하는데 WebApi에 메시지를 게시 한 후 응답이 없습니다. 나는 인터넷 검색을 시도하고 몇 가지 답변을 찾았지만, 그것은 나를 위해 작동하지 않습니다. 나는 왜 그런지 이해하지 못한다.WebApi에서 올바른 방법으로 응답하는 방법
public ActionResult Test()
{
RunAsync().Wait();
return null;
}
static async Task RunAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:50984/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP POST
var gizmo = new ErrorModel
{
Key = "2ccab87f5f904d3688a28b1a1fb4269b",
Name = "HTTP Error 404"
};
HttpResponseMessage response = await client.PostAsJsonAsync("exceptionregistration/handle", gizmo);
if (response.IsSuccessStatusCode)
{
}
}
}
WebApi 컨트롤러 : HTTP POST 요청에 대한
이
코드 (here에서, 그것은 간단한 MVC 컨트롤러에서 불과 예입니다)
public class HandleController : ApiController
{
[System.Web.Http.HttpPost, ValidateInput(false)]
public HttpResponseMessage Post([FromBody]ErrorModel errorData)
{
try
{
// some code
}
catch (Exception ex)
{
Logger.error(ex);
return null;
}
return Request.CreateResponse(HttpStatusCode.OK, "value");
}
}
그리고이 줄은 적이있다 완전히 실행 됨 (응답 없음) :
HttpResponseMessage response = await client.PostAsJsonAsync("exceptionregistration/handle", gizmo);
무엇이 잘못 되었습니까? 응답을 기다리는 중 왜 결과가 나오지 않습니까?
웹 API 컨트롤러에 json 메시지를 게시하는 것이 더 좋은 방법일까요?
'그리고이 라인에
public async Task<ActionResult> Test()
에 완전히 실행 된 적이없는 (응답 없음)'당신은 어떻게 압니까? –'if (response.IsSuccessStatusCode) {Thread.Sleep (10);}'응답 코드를 검사하려고했습니다. 결과가 없다. –
코드에 그런 행이 없습니다. 응답 코드를 어떻게 확인 했습니까? 'Thread.Sleep (10);'이 상황에서는 아무 것도하지 않습니다. –