file get contents請求失敗處理

2021-10-17 09:27:40 字數 979 閱讀 4682

注釋掉除用於處理解密的filter(此filter無法注釋掉,因為客戶端正常請求必須要經過此filter處理,否則將出現無法訪問的閘道器內部異常錯誤)之外的所有自定義filter,目的是排除法查詢是否由於某乙個filter寫法存在問題所導致。-結論:仍出現400,定位問題失敗!

回顧問題描述,因為不是每次請求都會出現400,同時5分鐘為乙個關鍵時間週期,認為可能需要設定請求時間引數,但檢查後確認在使用的框架中無此功能,故決定公升級springcloud和springboot到最新版( hoxton.release、springboot2.2.4),目的是確認是否是因為框架自身版本低的bug所導致。-結論:仍出現400,定位問題失敗!

以上思路1和2均驗證失敗後,最終嘗試將問題定位到思路1中無法注釋掉的用於處理解密的filter。採取排除法將此filter中的**依次注釋掉定位是由於哪個位置導致的400。-結論:發現問題所在位置,是由於接收到的請求沒有content-type項,導致走到了預設的返回mono.empty()。

採用設定雙保險策略。 設定保險1:為了提高處理效率,當前filter解密報文之前就進行判斷,針對content-type等於null的情況,直接return chain.filter(exchange),交由下乙個filter處理,filter鏈條繼續。 設定保險2:針對類似content-type等於null的特殊異常情況,在研究mono類的用法時發現,存在mono.empty()、mono.just()、mono.justorempty()共計三種方法,故使用mono.justorempty(data),通過判斷data是否為空,來執行empty或者執行正常的just(data不為空執行just),走完如場景重現(見下文)中的index=6之後餘下所有的filter,直到執行完成,正常結束所有filter處理。

好了,說到這裡就先暫時告一段落啦,希望我的答疑能夠幫助到大家!武漢加油!加油中國 !

Feign 首次請求失敗

當feign和ribbon整合hystrix之後,可能會出現首次呼叫失敗的問題,出現原因分析如下 hystrix預設的超時時間是1秒,如果介面請求響應超過這個時間,將會執行fallback,spring在裝配bean的機制以及懶載入原因,feign的首次請求都會相對較慢,如果請求超過1秒,就會出現請...

Ajax請求引數較長導致請求失敗

ajax請求引數比較長,第5行引數大概1100個字元吧,是介面的請求報文。1 ajax test.action?method invokeinfo 4 beforesend alert beforesend 5 data 傳給伺服器的引數 67 success function result 10 ...

關於volley請求失敗會重新請求問題

volley中沒有指定的方法來設定請求超時時間,可以設定 retrypolicy 來 變通實現。defaultretrypolicy類有個initialtimeout引數,可以設定超時時間。要確保最大重試次數為0,以保證超時後不重新請求。為確保請求失敗後不重新請求問題,我們可以針對volley這樣設...