0
我正在使用 org.apache.http.impl.client.CloseableHttpClient
發送請求。每當標題之一的尺寸較大(約103452
字節),我得到一個:java.net.SocketException:連接重置,大型HTTP標頭
java.net.SocketException異常:連接復位
的連接可能不被重置服務器,因爲其他客戶端來自其他Java應用程序(可能使用spring OAUTH/REST客戶端)似乎能夠在發送類似大型標題的同時使用該服務。
即使正確的解決方法是爲了避免首先發送這樣一個大頭的需要,有沒有配置org.apache.http.impl.client.CloseableHttpClient
,可以防止它在大頭上崩潰?
客戶端內置有:
HttpClientBuilder.create().useSystemProperties().build()
你有多確定服務器是否拒絕請求? HTTP規範沒有規定限制,我不相信Apache客戶端強加一個默認配置。但是,網絡服務器呢...有關詳細信息,請參閱https://stackoverflow.com/questions/686217/maximum-on-http-header-values。請注意,Web服務器強加的限制是所有標題的組合大小,而不是單個標題。 – Alex
好點。我會確認 – erjoalgo
您能否將您的評論添加爲答案?我嘗試將請求發送到本地服務器:'sudo nc -l 80'。帶有100Kb頭的請求被apache http客戶端發送得非常好。同時,我嘗試通過'curl'客戶端向真實服務器發送同樣的請求,並且我得到了一個'curl:(56)Proxy CONNECT aborted''。所以即使代理可能會拒絕這麼大的頭部大小。 – erjoalgo