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