1. 程式人生 > >如何判斷一個HTTP請求是瀏覽器請求還是應用程式請求?

如何判斷一個HTTP請求是瀏覽器請求還是應用程式請求?

1、獲取請求的request

HttpServletRequest request=ServletActionContext.getRequest();

2、攔截器中判斷請求頭 通常判斷來自手機端的請求還是PC端的請求只需要判斷:

request.getHeader( "content-type" ) == null && (request.getheader("user-agent").tolowercase().indexof("mozilla")!=-1)

即可,但是小程式傳送的請求和瀏覽器端的請求頭中”user-agent”屬性是一致的。經過一番比較,發現可以用如下屬性判斷: 2.1 瀏覽器端的請求頭中的‘ application/json ’是封裝在accept中的,並且請求頭中沒有‘content-type’屬性,只有response頭中含有該屬性。 2.2 在小程式請求頭中設定’Content-Type’: ‘application/json’,這樣小程式請求頭中該屬性不為空,即可在攔截器中判斷‘content-type’是否為空來判斷請求從小程式還是PC端傳送。 2.3 判斷的時候還是設定”content-type”和”accept”兩個比較保險一點,所以用如下方法判斷:

if( request.getHeader( "content-type" ) == null && request.getHeader( "accept" ) != null ) {    
    return "login";//網頁請求
}else{
    return "notExist";//小程式請求
}