2009-07-31 39 views
8

Tôi cần mã hóa URL bằng cách sử dụng yêu cầu HTTP GET trong Blackberry. Bất kỳ ai có thể giúp tôi tìm thấy làm thế nào để đạt được điều này.Bộ mã hóa URL Blackberry

Trả lời

8

đây bạn đi; ^)

public static String URLencode(String s) 
{ 
    if (s!=null) { 
     StringBuffer tmp = new StringBuffer(); 
     int i=0; 
     try { 
      while (true) { 
       int b = (int)s.charAt(i++); 
       if ((b>=0x30 && b<=0x39) || (b>=0x41 && b<=0x5A) || (b>=0x61 && b<=0x7A)) { 
        tmp.append((char)b); 
       } 
       else { 
        tmp.append("%"); 
        if (b <= 0xf) tmp.append("0"); 
        tmp.append(Integer.toHexString(b)); 
       } 
      } 
     } 
     catch (Exception e) {} 
     return tmp.toString(); 
    } 
    return null; 
} 
18

Whyt bạn không sử dụng RIM của URLEncodedPostData?

private String encodeUrl(String hsURL) { 
    URLEncodedPostData urlEncoder = new URLEncodedPostData("UTF-8", false); 
    urlEncoder.setData(hsURL); 
    hsURL = urlEncoder.toString(); 
    return hsURL; 
} 
+0

Giải pháp tuyệt vời nhưng không di động. Vì anh ấy muốn chạy phần mềm của mình trên một thiết bị di động khác, anh ấy sẽ hỏi lại câu hỏi tương tự. Tốt nhất là tránh xa các lớp chỉ chạy trên một nền tảng. – Toad

+0

Không thể chắc chắn ... Trong trường hợp này bạn đã đúng, vì nó không phải là chức năng phụ thuộc nền tảng. Nhưng vẫn đơn giản là tốt, thực hiện nó khi họ hỏi bạn. –

+4

Anh ấy không thực sự nói anh ấy đang viết mã di động đa nền tảng nên trong trường hợp này tôi sẽ phải đối mặt với cảm lạnh - có vẻ như an toàn hơn với tôi (ít có khả năng giới thiệu lỗi hơn) để sử dụng API gốc theo cách tiếp cận homebrew. –

6

sử dụng lớp được cung cấp bởi w3. Đây là tải xuống link

+0

thx, w3 được đánh giá thấp cho những điều này. –

3

the reply using "URLEncodedPostData" above không chính xác. Mẫu đã sửa:

public static String encodeUrl(Hashtable params) 
{ 
    URLEncodedPostData urlEncoder = new URLEncodedPostData("UTF-8", false); 
    Enumeration keys = params.keys(); 
    while (keys.hasMoreElements()) { 
     String name = (String) keys.nextElement(); 
     String value = (String) params.get(name); 
     urlEncoder.append(name, value); 
    } 

    String encoded = urlEncoder.toString(); 
    return encoded; 
} 

Chúc mừng!