Ответ 1
Посмотрев на исходный код воспроизведения (Play 1.1) в объекте play.mvc.Http.StatusCode
, у Play появится следующие коды
public static final int OK = 200;
public static final int CREATED = 201;
public static final int ACCEPTED = 202;
public static final int PARTIAL_INFO = 203;
public static final int NO_RESPONSE = 204;
public static final int MOVED = 301;
public static final int FOUND = 302;
public static final int METHOD = 303;
public static final int NOT_MODIFIED = 304;
public static final int BAD_REQUEST = 400;
public static final int UNAUTHORIZED = 401;
public static final int PAYMENT_REQUIERED = 402;
public static final int FORBIDDEN = 403;
public static final int NOT_FOUND = 404;
public static final int INTERNAL_ERROR = 500;
public static final int NOT_IMPLEMENTED = 501;
public static final int OVERLOADED = 502;
public static final int GATEWAY_TIMEOUT = 503;
Это означало бы подтверждение НЕКОТОРЫХ кодов, которые вы идентифицировали, таких как 201, 202, 204. Однако значения 307, 405, 406, 409, 410 и 415 не существуют.
Кроме того, 201, 202, 204 подтверждаются, но не упоминаются где-либо еще в исходном коде. Поэтому, если сервер Netty или один из поставляемых файлов jar не управляют этими функциями для Play (что я не уверен, что это может сделать), я не вижу, как Play может магически обрабатывать эти ситуации, не зная базы кода.
Если посмотреть на код для renderJSON, он не указывает, что код статуса является частью отправки результатов назад (поэтому используется значение по умолчанию 200), поэтому следующий хак может работать.
public static void myJsonAction() {
response.status = 201;
renderJSON(jsonString); // replace with your JSON String
}