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

  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • Sam Kear

    Sam Kear

    14 Temmuz 2007