2012-09-04 12 views
5

Sto lavorando alla creazione di una Sitemap video per un sito che ha ospitato video sul cloud video BrightCove. Al fine di ottenere tutte le informazioni video dal sito, Brightcove suggerisce di leggere la risposta dal loro URL del seguente moduloHttpURLConnection restituisce 503 errori quando si accede tramite il proxy

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

l'uscita del url è in JSON, dove accountToken è solo un identificatore del conto.

Quando eseguo l'url sopra con Token nel browser, mi dà la risposta corretta.

ho di leggere da tale 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(); 
     } 

come browser usa il proxy scritto sotto frammento di programma, ho aggiunto sotto codice per includere le impostazioni proxy

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

Senza usare le impostazioni del proxy, restituisce java.net.ConnectException: Connection refused: connect e con proxy mi dà java.io.IOException: Server returned HTTP response code: 503

Quindi la mia domanda è, perché mi sta dando un 503 (Servizio non disponibile) erro r? Dal browser funziona bene.

Aggiornamento 1: Sembra un problema con la rete. Ho fatto il ping del dominio e ha detto "Richiesta scaduta". Lavorando via HTTP però. Sembra un problema con il firewall.

+0

Giù elettori si prega di commentare. –

+0

che tipo di proxy è? – jtahlborn

+0

@jtahlborn: proxy inverso. Con quale contesto stai chiedendo questo? –

risposta

3

Penso che, a causa della tua connessione Internet, ho provato il tuo codice non ho ricevuto alcun 503(Service Unavailable). Controlla con una connessione di connessione diversa (senza proxy) e dovrebbe funzionare. Oppure si può provare con approccio leggermente diverso:

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

Se avete SOCKS tipo di proxy, cambiare Proxy 's parametro del costruttore a Proxy.Type.SOCKS.

+0

Ho già provato questo approccio per il proxy .... non ho provato con il tipo Proxy.Type.SOCKS però. ... fammi provare e ti faccio sapere ..... –

+0

Non funziona. Ho ottenuto 'java.net.SocketException: risposta errata dal server SOCKS'. Non c'è motivo di provarlo in una connessione diversa senza proxy. Devo farlo funzionare nell'ambiente client che richiede proxy .. :( –

+0

Come hai detto sembra un problema di rete. Ho aggiunto un aggiornamento alla mia domanda. la risposta sicuramente merita questa grazia. Grazie. –

0

piccola correzione al codice Jamas

String host="myproxy.com"; 
int port=8080; 
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));