SORU
7 NİSAN 2009, Salı


HTTP URL Java Kodlama Adresi

Java tek başına benim uygulama kullanıcı bir URL bir dosyaya puan) alır ve onu vurdu ve indirmek istiyorum. Karşı karşıyayım bu sorun, HTTP URL adresi düzgün kodlamak için mümkün değil

Örnek:

URL:  http://search.barnesandnoble.com/booksearch/first book.pdf

java.net.URLEncoder.encode(url.toString(), "ISO-8859-1");

verir bana

http://search.barnesandnoble.com/booksearch/first book.pdf

Ama benim istediğim şey

http://search.barnesandnoble.com/booksearch/first book.pdf

(boşluk ile değiştirilir )

URLEncoder HTTP URL kodlamak için tasarlanmış değildir sanırım... JavaDoc diyor "HTML form kodlama Programı sınıfı"... orada bunu yapmak için başka bir yol var mı?

CEVAP
7 NİSAN 2009, Salı


java.net.URI sınıfı yardımcı olabilir; URL belgelerinde bulabilirsiniz

Not URİ sınıfı bazı durumlarda bileşen alanları kaçan bir performans gösteriyor. URL kodlama ve kod çözme yönetmek için önerilen yoldur bir URI kullanmak

Birden fazla bağımsız değişken olduğu gibi, kurucular birini kullanın:

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf",
    null);
URL url = uri.toURL();
//or String request = uri.toString();

(URI-tek argüman yapıcı geçersiz karakterler kaçış YOK)


EDİT: eklendi tam URI diğer sınıflar ile karışıklığı önlemek için sınıf adı (Apache httpclient gibi) nitelikli


EDİT 2:
Sadece geçersiz karakterler yukarıdaki kod ile kaçtı - ASCII olmayan karakterler (fatih yorum) çıkış DEĞİL.
toASCIIString yöntemi US-ASCII karakter tek bir Dize almak için kullanılabilir

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/é",
    null);
String request = uri.toASCIIString();

EDİT 3:
http://www.google.com/ig/api?weather=São Paulo yapıcı kullanımı 5-parametre versiyonu gibi: bir sorgu ile bir URL için

URI uri = new URI(
        "http", 
        "www.google.com", 
        "/ig/api",
        "weather=São Paulo",
        null);
String request = uri.toASCIIString();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • SegaAmerica

    SegaAmerica

    5 Mart 2008