首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 讀取 HTTP Cookie 的實用方法

     編輯:J2ME

程式碼片段

從 HttpConnection 的回應標頭中解析 Set-Cookie,支援常見的 Session ID 格式(JSESSIONID、PHPSESSID、ASP.NET_SessionId):

private String readCookie(HttpConnection conn) throws IOException {
    String key, value;
    String[] parts;
    for (int i = 0; (key = conn.getHeaderFieldKey(i)) != null; i++) {
        key = key.toLowerCase();
        if (key.equals("set-cookie")) {
            value = conn.getHeaderField(i);
            while (value != null) {
                parts = split(value, ';');
                if (parts[0].startsWith("JSESSIONID=") ||
                    parts[0].startsWith("PHPSESSID=") ||
                    parts[0].startsWith("ASP.NET_SessionId=")) {
                    return parts[0];
                }
                // 取下一個 cookie 片段
                value = (parts.length > 1) ? parts[1] : null;
            }
        }
    }
    return null;
}

// 簡易分割輔助方法
private String[] split(String src, char delim) {
    java.util.Vector v = new java.util.Vector();
    int start = 0;
    for (int i = 0; i < src.length(); i++) {
        if (src.charAt(i) == delim) {
            v.addElement(src.substring(start, i).trim());
            start = i + 1;
        }
    }
    v.addElement(src.substring(start).trim());
    String[] out = new String[v.size()];
    v.copyInto(out);
    return out;
}

使用說明

  • 呼叫時機:在 HttpConnection 取得回應碼(如 HTTP_OK)後。
  • 回傳值:第一個符合的 Session ID 字串(含名稱與值),若無則回傳 null。
  • 注意:HttpConnection.getHeaderFieldKey(int) 與 getHeaderField(int) 需成對使用以遍歷所有標頭。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved