Java URLConnectionクラスによるプロキシ

私はJavaで非常に新しいです。私は呼び出し元のREST APIのために次のコードを使用しています。シンプルな環境でうまく動作しますが、プロキシ環境で使用すると NullPointerException がスローされます。私はgoogleで結果を見つけました。そのためにプロキシを設定する必要があります。私は、その http://www.javaworld.com/javaworld/javatipsに従ってプロキシを設定しました/jw-javatip42.html 記事ですが、これは動作していません+構文エラーを作成する base64Encode(パスワード)

URL url = new URL("http://examplerestapi/get/user");
URLConnection yc = url.openConnection();



in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;

while ((inputLine = in.readLine()) != null) {
       sb.append(inputLine);
}

String res = sb.toString();

プロキシのホスト、ポート、ユーザー名、パスワードを設定してください。

5

1 答え

yc.getInputStream() null を返しているため、あなたの NullPointerException が発生している可能性があります。そこからバイトを読み取るためのリーダーを作成する前に、null以外の値が返されていることを確認する必要があります。

プロキシの問題については、 Proxy オブジェクトを接続に渡すことができます(例:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("my.proxy.example.com", 3128));
URLConnection yc = url.openConnection(proxy);

これは、少なくとも、プロキシを調べて問題の潜在的な原因を排除することを可能にするかもしれません(それはいくつか存在します)。

This thread might have some useful hints for getting your proxy username and password string working properly. The article you linked looks slightly out of date.

18
追加された
@Gian、上記のコードは、system.setPropertyのようなjvmスコープでプロキシの設定を行いますか?
追加された 著者 Mahmoud Saleh,
今はうまく働いています。
追加された 著者 Govind KamalaPrakash Malviya,
ユーザー名とパスワードはどうですか?
追加された 著者 Ravi Parekh,