2016-06-01 22 views
2

FTP URLが定義されている文字列があり、その文字列からユーザー名とパスワードの詳細を解析する必要があります。そのために私はjava.net.URIの「@」を持つURLの処理getUserInfo

def userInfo = uri.getUserInfo() 
def username 
def password 

    if(userInfo){ 
     def pos = userInfo.indexOf(":") 
     if(pos >= 0){ 
      username = userInfo.substring(0, pos) 
      password = userInfo.substring(pos+1) 
    }  
} 

このコードは、URLは次のようにその中に「@」を持っている場合を除き、正常に動作します... java.net.URI(https://docs.oracle.com/javase/6/docs/api/java/net/URI.html)のgetUserInfoメソッドを使用しています。..

ftp://[email protected]:[email protected]/orders.txt 

このようなURLの場合、uri.getUserInfo()を呼び出すとnullが返されます。

このようなURLを処理する方法はありますか?

答えて

1

@は、URLのユーザー名またはパスワードの有効な文字ではありません。それはコード化されなければならない。あなたはこのようにURIを記述するのであれば、あなたのコードは動作します:

ftp://kirk%40starfleetcom:[email protected]/orders.txt

を私の知る限りでは、単にURLエンコードあなたの前に両方のユーザー名とパスワードは、URIを構築する必要があります

java.net.URLEncoder.encode(username)

関連する問題