記錄一個(gè)剛踩的坑
因?yàn)楣居媚车哪硰S商的設(shè)備,該設(shè)備發(fā)送http請(qǐng)求之后要求response header中
返回 HTTP/1.1 200 OK ,眾所周知,status code 200表示連接成功 ,而OK 是reasonPhrase。
而我用的是tomcat 8.5/9.0版本,只有個(gè)HTTP/1.1 200 沒(méi)有OK,然后廠商那邊也是坑爹,有個(gè)200還不滿足,字符串判斷非要有 200 OK ,人家嵌入式的 代碼又不像咱們這個(gè)隨時(shí)改,只能我這邊研究研究了。
網(wǎng)上查看幾個(gè)回復(fù),說(shuō)用httpResponse.setStatus(200,”O(jiān)K”)就可以,經(jīng)實(shí)測(cè),方法已經(jīng)deprecated且不生效,
但是同一個(gè)帖子下的回復(fù)有提到修改server.xml,增加 sendreasonPhrase=”true”的,經(jīng)過(guò)測(cè)試,tomcat8.0/8.5/9.0都生效,看了下apache官網(wǎng),截圖如下:
經(jīng)過(guò)本人 親測(cè)即便是tomcat 9.0.10修改后也是會(huì)發(fā)送200 OK的,跟官網(wǎng)介紹相矛盾,特此記錄,如果哪位老兄以后也碰上200還不OK的奇葩要求,可以避免踩坑,之前上stackoverflow看了,一群老外也沒(méi)研究出來(lái),只說(shuō)是apache覺(jué)得reasonPhrase沒(méi)卵用還浪費(fèi)byte就在8.5去掉了這個(gè)功能。
補(bǔ)充一下,這個(gè)屬性加在Connector上