Могу ли я вернуть HTTP-код 504 в сетевое ядро ​​ASP

В linux для завершения стандартного ввода вам нужно ввести Ctrl-D. Уровни ядра и tty делают знак или условие конца файла. Тогда getchar дает EOF (который не действителен char, например, в системах, где char являются неподписанными байтами между 0 и 255, EOF может быть -1).

Обратите внимание, что feof (3) действителен только после операции чтения (например, getchar, fgets и т. д.), поэтому кодирование while(feof(stdin)), как правило, неверно (в отличие от того, что я написал в предыдущей версии этого ответа). Вам лучше проверить, что getchar возвращает EOF, поэтому ваш myChar должен быть int (а не char).

1
задан Mat 27 February 2019 в 17:11
поделиться

2 ответа

Попробуйте это:

context.HttpContext.Response.StatusCode = 504;
0
ответ дан rad 27 February 2019 в 17:11
поделиться

Используйте ObjectResult и установите код состояния вручную.

//... omitted for brevity

if (!MyService.IsConnected) {
    var info = new ResultInformation() { 
        ResultCode = 2000056, 
        Message = "My service is not reachable" 
    };
    context.Result = new ObjectResult(info) {
        StatusCode = 504
    };
}

//... omitted for brevity

Большинство стандартных типов результатов состояния, для которых требуется тело объекта, фактически получены из ObjectResult, где они устанавливают свой конкретный код состояния. Например, BadRequestObjectResult

Если вам не нужно возвращать тело ответа, вы можете вместо этого использовать StatusCodeResult

context.Result = new StatusCodeResult(504);
0
ответ дан Nkosi 27 February 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: