Как правильно добавить заголовок «Connection: close» в запрос Http? - PullRequest
1 голос
/ 05 мая 2011

Я получаю сообщение об ошибке при добавлении заголовка «Connection: close» в запрос Http ... Ошибка:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'content' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3601)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)

Причина этой ошибки заключается в том, что веб-сервер возвращает очень длинный (больше, чем MAX_LONG) ответ на запрос (к которому я добавил заголовок «Connection: close»), и поэтому база данных разрушается, поскольку она превышает размер данных, разрешенных для этого столбца (содержание запроса). Если я пропущу этот заголовок, ответы будут просто нормальными и разумными.

Кто-нибудь понял?

tnx, Итамар

1 Ответ

0 голосов
/ 12 июля 2011

Может быть, потому что сервер HTTP 1.0 и неправильно обрабатывает заголовок "Connection: close"? Возможно, вы забыли CRLF после одного из ваших заголовков или, возможно, вы забыли пустую строку, которая указывает конец заголовков. В любом случае, общая структура HTTP-запроса: начальная строка CRLF (= новая строка "возврат каретки-перевод строки") строки заголовка, каждая из которых должна быть CRLF (> = 0) пустая строка (т.е. сам по себе CRLF) [необязательный] текст сообщения (например, файл, или данные запроса, или выходные данные запроса). Краткое руководство по http

...