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

  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • Edgar flores

    Edgar flores

    7 HAZİRAN 2006
  • martin shervington

    martin sherv

    7 EKİM 2011