WebAPI 원본 POST 요청 BODY 의 JSON 내용 가 져 오기

827 단어 C#Asp.Net.NetWebApi
controller 의 action 에 다음 코드 를 쓰 십시오:
string content = Request.Content.ReadAsStringAsync().Result;

그러나 이 코드 에서 얻 은 콘 텐 츠 는 비어 있 었 고 한참 동안 알 지 못 했 으 며 나중에 한 외국 포럼 에서 원인 을 찾 았 다.
그 이 유 는 이 렇 습 니 다. 액 션 매개 변수 에 [FromBody] 등 내용 을 읽 는 방법 이 존재 할 때 [FromBody] 에 의 해 '먹 히 기' 되 기 때 문 입 니 다.생동감 있 게 말 하 는데 사실은 읽 은 후에 내용 을 가리 키 는 지침 이 마지막 끝 자 를 가리 키 기 때문에 다시 읽 을 때 읽 을 수 없 기 때문에 해결 방법 은 두 가지 가 있 습 니 다.
1. [FromBody] 가 필요 없 이 코드 에서 상기 코드 로 원본 내용 을 직접 읽 습 니 다.
2. [FromBody] 를 보류 하고 내용 지침 을 재 조정 한 다음 에 읽 습 니 다.
Request.Content.ReadAsStreamAsync().Result.Seek(0, System.IO.SeekOrigin.Begin);
string content = Request.Content.ReadAsStringAsync().Result;

참고:
https://stackoverflow.com/questions/10127803/cannot-read-request-content-in-asp-net-webapi-controller

좋은 웹페이지 즐겨찾기