2015-04-13 5 views
0

Я очень новичок в Play Framework, и я делал учебник, но у меня есть небольшая проблема.Java Play Framework Json BadRequest

Я пытаюсь отправить запрос JSON POST и посмотреть, могу ли я получить запрос правильно или нет.

Я использую «Расширенный клиент для отдыха» в Chrome для тестирования и отправки сообщения POST.

Я не знаю, почему, я получаю сообщение об ошибке «Плохой запрос» каждый раз, когда вы отправляете какие-либо сообщения.

Мой код:

@BodyParser.Of(BodyParser.Json.class) 
public static Result createRutines(){ 
    JsonNode json=request().body().asJson(); 
    if(json==null){ 
     return badRequest("The JSON is Empy"); 
    }else{ 
     return ok("Arrived"); 
    } 
} 

Я ценю вашу помощь.

Я не смог прикрепить изображение клиента Advance Rest, потому что у меня нет достаточной репутации здесь.

+0

могли бы вы добавьте тело ответа? Насколько большой JSON вы отправляете? Вы пробовали это с завитом? Что находится в вашем файле 'routes'? –

+0

Убедитесь, что при отправке данных JSON вы задаете правильный тип содержимого. т.е. application/json. – xtrakBandit

+0

Это поможет, если вы разместите свое тело JSON, которое будет отправлено – xtrakBandit

ответ

0

Либо вы не отправляете недопустимый JSON, либо не задаете правильный тип контента.

Чтобы проверить, что ваш JSON является действительным вы можете использовать http://jsonlint.com/

Во втором случае, вы можете просто добавить заголовок Content-Type: application/json к вашему запросу, или вы можете использовать TolerantJson вместо:

@BodyParser.Of(BodyParser.TolerantJson.class) 
public static Result createRutines(){ 
    // (...) 
} 
+0

Вау, Json действителен :) и задан тип контента. Но я изменяю то, что вы сказали, Json to TolerantJson и работает отлично. Но я хочу узнать, почему так работает, а не другой? Я тот парень, который хочет узнать, какой путь лучше не только видеть, что что-то работает XD. Большое спасибо за вашу помощь – Aleyango

+0

@aleyango Я думаю, что единственная разница между парсерами Json и TolerantJson заключается в том, что TolerantJson не проверяет заголовок contentType. Поэтому вы, вероятно, не правильно передаете этот заголовок. – Salem