headerjava
❶ header鏄疛AVA璇瑷涓镄勫叧阌瀛楀悧锛
1銆佸叧阌瀛楁槸鐢佃剳璇瑷閲屼簨鍏埚畾涔夌殑锛屾湁鐗瑰埆镒忎箟镄镙囱瘑绗锛屾湁镞跺张鍙淇濈暀瀛楋纴杩樻湁鐗瑰埆镒忎箟镄勫彉閲忋侸ava镄勫叧阌瀛楀笿ava镄缂栬疟鍣链夌壒娈婄殑镒忎箟锛屼粬浠鐢ㄦ潵琛ㄧず涓绉嶆暟鎹绫诲瀷锛屾垨钥呰〃绀虹▼搴忕殑缁撴瀯绛夛纴鍏抽敭瀛椾笉鑳界敤浣滃彉閲忓悕銆佹柟娉曞悕銆佺被钖嶃佸寘钖嶅拰鍙傛暟銆
2銆乭eader涓嶆槸java璇瑷涓镄勫叧阌瀛椼
3銆佸父瑙佺殑java璇瑷镄勫叧阌瀛楁湁class銆乧har銆乨o銆乸ublic銆乸rivate绛夌瓑
4銆佸笇链涘逛綘链夊府锷┿
❷ Java銮峰彇Http鍝嶅簲Header淇℃伅
銆銆链鏂囦腑婕旂ず濡备綍阃氲繃URLConnection銮峰彇Http鍝嶅簲Header淇℃伅
銆銆 浠庡搷搴斾腑銮峰缑Header淇℃伅
銆銆URL obj = new URL
銆銆URLConnection conn = obj openConnection锛堬级
銆銆Map<String List<String銆 map = conn getHeaderFields锛堬级
銆銆 浠庡搷搴擧eader涓銮峰彇Server淇℃伅
銆銆Map<String List<String銆 map = conn getHeaderFields锛堬级
銆銆List<String> server = map get锛 Server 锛
銆銆瀹屾暣镄勭ず渚
銆銆package qiyadeng ;
銆銆import URL;
銆銆import URLConnection;
銆銆import java util List;
銆銆import java util Map;
銆銆public class GetHttpResponseHeader {
銆銆public static void main锛圫tring[] args锛 {
銆銆try {
銆銆URL obj = new URL
銆銆URLConnection conn = obj openConnection锛堬级
銆銆Map<String List<String銆 map = conn getHeaderFields锛堬级
銆銆System out println锛 鏄剧ず鍝嶅簲Header淇℃伅 锛
銆銆for 锛圡ap Entry<String List<String銆 entry : map entrySet锛堬级锛 {
銆銆System out println锛 Key : + entry getKey锛堬级 +
銆銆 Value : + entry getValue锛堬级锛
銆銆}
銆銆System out println锛 浣跨敤key銮峰缑鍝嶅簲Header淇℃伅 锛
銆銆List<String> server = map get锛 Server 锛
銆銆if 锛坰erver == null锛 {
銆銆System out println锛 Key Server is not found! 锛
銆銆} else {
銆銆for 锛圫tring values : server锛 {
銆銆System out println锛坴alues锛
銆銆}
銆銆}
銆銆} catch 锛圗xception e锛 {
銆銆e printStackTrace锛堬级
銆銆}
銆銆}
銆銆}
銆銆杈揿嚭
銆銆鏄剧ず鍝嶅簲Header淇℃伅钬
銆銆Key : null Value : [HTTP/ OK]
銆銆Key : X Pingback Value :
銆銆Key : Date Value : [Sun Mar : : GMT]
銆銆Key : Transfer Encoding Value : [chunked]
銆銆Key : Connection Value : [close]
銆銆Key : Content Type Value : [text/; charset=UTF ]
銆銆Key : Server Value : [Apache/ 锛圕entOS锛坞
銆銆Key : X Powered By Value : [PHP/ ]
lishixin/Article/program/Java/hx/201311/25662
❸ java开发 Rest 接口怎样设计api_key 也就是我的api怎样才能不被自由访问,需要在header加入验证
以下仅供参考:
如果rest端要自己维护api_key,类似存储在数据库里,就分发(授权)给客户端某个api_key,然后客户端用api_key和一些其他条件如时间戳+签名去rest端换取一个token,最后客户端用这个token和rest端进行交互,可以参考下微信的oauth鉴权.
如果rest端不维护api_key,也就省去分发(授权)客户端api_key的工作,此时客户端用传递的参数和其他条件如时间戳+签名去rest端换取一个token..同上
上述所说的token都是唯一的,对于同一个客户端的请求而言,下次刷取token的时候,之前产生的token作废;
token本身应该要维持在rest端,也应该有一个过期的限制;
(参数)+(api_key)+时间戳 通过加密算法(如sha2)生成签名,rest端同逻辑校验签名是否合法一般就能卡掉一大部分的访问,
至于api_key或者token放在哪里,一般无状态访问比较常见是在head里(常见如angularjs项目),这里我觉得随意,因为只要被拦截都可见,只是head可以放比较多的东西用来障目就是了.
当然,如果正在用的token被拦截,同样也是可以随意访问的,因此可能要求https协议加证书应该会更牢固点(没试过);
一般就这样,再高的我也不懂了,如果陈述有什么问题,者有什么看法,也还请不吝赐教~