2

Webサービスを呼び出すと、そのURLに特定の値を渡します。

例:

https://website.com/webserviceName/login?userName=user&password=pass

ただし、値に「&」が含まれている場合はどうなりますか。「&」を含むアイテムを含むURLを作成すると、その時点でURLが壊れて障害コードが返されます。どうすればこの問題を克服できますか。

例:

https://website.com/webserviceName/login?userName=user&user&password=pass

このURLの問題は、最初の「&」で壊れることです。

この問題は、 http: //www.tutorialspoint.com/html/html_url_encoding.htmを使用して解決できます。URLEncoder.encode(urlXml)

みんなありがとう

4

3 に答える 3

3

アンパサンドは。でエンコードする必要があります。したがって、URLは次のようになります&%26

https://website.com/webserviceName/login?userName=user%26user&password=pass

ユーザー名が固定されておらずURLEncoder.encode、@ SudhanshuUmalkarが提案したように使用する場合は、引数のみをエンコードする必要があります

String url = "https://website.com/webserviceName/login?userName="
             + URLEncoder.encode(userName, "UTF-8") + "&password="
             + URLEncoder.encode(password, "UTF-8");

encode(String)は非推奨であるため、または文字セットが何であれを使用する必要がありencode(String, "UTF-8")ます。

于 2013-03-14T10:12:04.673 に答える
2

URLEncoder.encode()メソッドを使用します。

url = " https://website.com/webserviceName/login?" + URLEncoder.encode( "userName = user&user&password = pass"、 "UTF-8");

于 2013-03-14T10:11:48.013 に答える
0

文字通りのアンパサンドを使用するコードがあります。有効なキーと値のパラメーターのペアを指定しないため、コードが破損する可能性があります。

https://website.com/webserviceName/login?userName=user&user&password=pass
                                                       ^ this shouldn't be like this

以下のコードは本番環境で機能します。

public static final String DATA_URL = "http://www.example.com/sub/folder/api.php?time=%s&lang=%s&action=test";
String.format (API.DATA_URL, "" + now, language)
于 2013-03-14T10:14:59.323 に答える