У меня странная проблема с небольшим сервисом рестлетов, который я строю в качестве упражнения.Предполагается, что приложение ответит некоторым HTTP (, в частности TwiML , как он предназначен для Twilio) по HTTP POST, и оно хорошо работает для автономных запросов.Однако по запросу Twilio ответ никогда не завершается и время ожидания истекает.После сравнения трафика, поступающего из Twilio, с тем, который работает (используя поддельную HTML-форму), я изолировал проблему с заголовком «Connection: close» и могу воспроизвести его, используя только командную строку curl.Вот запрос, который работает:
curl -i -H 'Connection: keep-alive' -X POST -d "name=value" http://localhost:8020/hello
, а вот тот, который просто зависает:
curl -i -H 'Connection: close' -X POST -d "name=value" http://localhost:8020/hello
Если я убью сервер, то curl говорит "(52) Пустой ответ от сервера».Вот код, который я использую в ServerResource:
@Post
public Representation hello(Representation repr)
{
Representation result = new StringRepresentation(("<Response>\n"+
" <Say>Hello. This is a test.</Say>\n"+
"</Response>"), MediaType.APPLICATION_XML);
return result;
}
Что-то явно не так с тем, что я здесь делаю?Я использую restlet-2.0, но также пробовал с 2.1m1 с тем же результатом.Я был бы очень признателен за быстрый ответ, так как я в срок, чтобы закончить упражнение.