如何正确地向Http请求添加“Connection:close”标头?

时间:2011-05-04 20:31:43

标签: http header connection request

当我向Http请求添加“Connection:close”标头时,我一直收到错误... 错误是:

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)

此错误的原因是Web服务器返回一个非常长(大于MAX_LONG)的请求响应(我添加了“Connection:close”标头),因此数据库崩溃,因为它超过了该列允许的数据大小(请求的内容)。如果我省略这个标题,答案就会很好并且长度合理。

有人知道吗?

tnx,Itamar

1 个答案:

答案 0 :(得分:0)

可能是因为服务器是HTTP 1.0并且没有正确处理“Connection:close”标头?也许你忘记了一个标题之后的CRLF,或者你忘记了表示标题结尾的空白行。 无论如何,HTTP请求的一般结构是:     初始行CRLF(=新行“回车换行”)     标题行,每个都是CRLF(> = 0)     空行(即CRLF本身)     [可选]消息正文(例如文件,查询数据或查询输出)。 quick http guide