Как прочитать тело со страницы бритвы? Процесс продолжает висеть - PullRequest
0 голосов
/ 05 сентября 2018

Я отправляю данные, используя этот код JavaScript:

xhr = new XMLHttpRequest();
xhr.addEventListener('readystatechange', onStateChange);
xhr.open('POST', 'SavePage');
xhr.setRequestHeader('RequestVerificationToken', token);
xhr.send(payload);

Затем в своем файле SavePage.cshtml я пытаюсь читать напрямую из тела разными способами, я получил Content-Length и знаю, что мои данные имеют длину 162 байта.

Я пробовал этот простой пример:

var buffer = new byte[1024];
var info = HttpContext.Request.Body.Read(buffer, 0, 5);

Код поступает во 2-й ряд, а затем просто зависает, во всех отношениях я пытаюсь код просто зависает. Если я пытаюсь прочитать из HttpContext.Request.Form, он также зависает.

Когда я проверяю Chrome, вот что публикуется:

------WebKitFormBoundary2uFNJ1OvmPRrGH1P
Content-Disposition: form-data; name="main-content"

<p>
test
</p>
------WebKitFormBoundary2uFNJ1OvmPRrGH1P--

Что мне здесь не хватает, если я не смогу просто читать с тела? Или может быть, что не все тело было отправлено, но тогда почему я уже в коде?

Просто, к вашему сведению, я отправляю часть HTML-текста и просто хочу обработать его. Я подумал, что было бы легко просто прочитать с тела и справиться с этим сам. Но хотя я не новичок в c #, я настоящий новичок в ядре и в ОС, и особенно в сочетании ..

Я сейчас попытался заменить мой файл cshtml на ApiController:

[Route("api/[controller]")]
[ApiController]
public class SavePageController : ControllerBase
{
    [HttpPost]
    public void SavePage([FromBody] string htmlString)
    {
        // done what was posted is in htmlString argument
    }
}

Но тогда я получу 400 Плохих Запросов? Я получил это, прежде чем я добавил RequestVerificationToken, но это отправляется? Не уверен, что не так?

1 Ответ

0 голосов
/ 05 сентября 2018

Чтобы отправить команду на действие контроллера:

.net

[HttpPost]
public void SavePage([FromBody] string htmlString)
{
    // done what was posted is in htmlString argument
}

xhr java-скрипт в точности как в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...