2012-09-04 12 views
5

Estoy trabajando en la creación de un sitemap de video para un sitio que ha alojado videos en la nube de video de Brightcove. Con el fin de obtener toda la información de vídeo desde el sitio, Brightcove sugiere leer la respuesta de su URL de la forma siguienteHttpURLConnection devuelve el error 503 cuando se accede a través del proxy

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

la salida de la URL está en JSON, donde accountToken es sólo un identificador de la cuenta.

Cuando pulso el URL anterior con el token en el navegador, me da la respuesta correcta.

escribí a continuación fragmento de programa para leer desde esa 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(); 
     } 

Como mi navegador utiliza proxy, he añadido a continuación código para incluir la configuración del proxy

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

Sin utilizar la configuración del proxy, devuelve java.net.ConnectException: Connection refused: connect y con proxy me da java.io.IOException: Server returned HTTP response code: 503

Así que mi pregunta es, ¿por qué me está dando un 503 (Servicio no disponible) erro r? Desde el navegador funciona bien.

Actualización 1: Parece un problema con la red. Conecté el dominio y dije "Excedido el tiempo de solicitud". Trabajando a través de HTTP sin embargo. Parece un problema con el cortafuegos.

+0

abajo votantes favor comente. –

+0

¿Qué tipo de proxy es? – jtahlborn

+0

@jtahlborn: proxy inverso. ¿Con qué contexto estás preguntando esto? –

Respuesta

3

Creo que, debido a su conexión a Internet, he intentado con su código. No recibí ningún 503(Service Unavailable). Verifique con una conexión de conexión diferente (sin proxy) y debería funcionar. O puede probar con enfoque ligeramente diferente:

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

Si tiene CALCETINES tipo de proxy, cambiar Proxy 's parámetro de constructor para Proxy.Type.SOCKS.

+0

Ya probé ese enfoque para el proxy ... pero no lo intenté con el tipo Proxy.Type.SOCKS embargo. ... déjame probarlo y te lo haré saber ..... –

+0

No funciona. Tengo 'java.net.SocketException: respuesta mal formada del servidor SOCKS'. No tiene sentido intentarlo en una conexión diferente sin proxy. Tengo que hacer que funcione en el entorno del cliente que requiere proxy .. :( –

+0

Como dijiste, parece un problema de red. He agregado una actualización a mi pregunta. respuesta seguramente se merece esta recompensa. Gracias. –

0

pequeña corrección al código Jamas

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