5

Brightcoveビデオクラウドでビデオをホストしているサイトのビデオサイトマップの作成に取り組んでいます。サイトからすべてのビデオ情報を取得するために、Brightcoveは次のフォームのURLから応答を読むことをお勧めします

http://api.brightcove.com/services/library?token="+accountToken+"&page_size=1&command=find_all_videos&output=JSON&get_item_count=true

URLの出力はJSONであり、accountTokenはアカウントの単なる識別子です。

ブラウザでトークンを使用して上記のURLを押すと、正しい応答が返されます。

そのURLから読み取るために以下のプログラムスニペットを書きました

URL jsonURL = new URL("http://api.brightcove.com/services/library?token="+accountToken+"&page_size=1&command=find_all_videos&output=JSON&get_item_count=true");
        HttpURLConnection connection = (HttpURLConnection) jsonURL.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(connection.getInputStream()));
        String lineRead = "";
        while (reader.ready()) {
            lineRead = lineRead + reader.readLine();
        }

私のブラウザはプロキシを使用しているので、プロキシ設定を含めるために以下のコードを追加しました

        System.setProperty("http.proxyHost", "my.proxyurl.com");
        System.setProperty("http.proxyPort", "80");

プロキシ設定を使用しない場合は戻りjava.net.ConnectException: Connection refused: connect、プロキシを使用すると返されますjava.io.IOException: Server returned HTTP response code: 503

だから私の質問は、なぜそれは私に503(Service Unavailable)エラーを与えるのですか?ブラウザからは正常に動作しています。

アップデート1: ネットワークに問題があるようです。ドメインにpingを実行すると、「リクエストがタイムアウトしました」と表示されました。ただし、HTTP経由での作業。ファイアウォールの問題のようです。

4

2 に答える 2

3

私はあなたのインターネット接続が原因かもしれないと思います、私はあなたのコードを試しましたが、私は何も得られませんでし503(Service Unavailable)た。別の接続接続(プロキシなし)でチェックアウトすると、機能するはずです。または、少し異なるアプローチで試すことができます。

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host", "port));
conn = new URL(jsonURL).openConnection(proxy);

SOCKSタイプのプロキシを使用している場合は、Proxyのコンストラクターパラメータをに変更しますProxy.Type.SOCKS

于 2012-09-06T16:23:22.440 に答える
0

Jamasコードのマイナーな修正

String host="myproxy.com";
int port=8080;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
于 2015-07-14T07:19:39.997 に答える