Tengo una pregunta acerca HTTPConnection y getResponseCode en el BlackBerry
-
26-09-2019 - |
Pregunta
Si intento conectar la cámara JPEG, esta conexión funciona bien. Pero cuando me conecto a una cámara MJPEG (JPEG-stream), no puedo mostrar "System.out.println (" onreturn oncesi" + HttpConnection.getResponseCode ());" en la Salida de consola. Estoy utilizando el emulador y MDS. Puedo mostrar en MDS, ... corriente está por venir.
url = getUrl();
queryString = encodeURL(queryString);
byte postmsg[] = queryString.getBytes("UTF-8");
httpConnection = (HttpConnection) Connector.open(url
+ ";deviceside=false", Connector.READ_WRITE);
httpConnection.setRequestMethod(HttpConnection.GET);
httpConnection.setRequestProperty("Authorization", getBase64Encode());
os = httpConnection.openDataOutputStream();
for (int i = 0; i < postmsg.length; i++) {
os.write(postmsg[i]);
}
{
if (!cancel) {
System.out.println(httpConnection.getURL()+
" *****"+httpConnection.getPort());
System.out.println("onreturn oncesi"
+ httpConnection.getResponseCode());
onReturn(httpConnection.getResponseCode(), httpConnection
.openInputStream(),(int) httpConnection.getLength());
System.out.println("onreturn sornrası");
}
os.close();
httpConnection.close();
}
} catch (Exception e) {
System.out.println("hata " + e.getMessage());
try {
httpConnection.close();
Thread.sleep(60);
} catch (Exception ie) {
}
onError(e);
}
Solución
Uno de los problemas es su no establecer cabeceras de solicitud correctamente.
Sus datos contables, por lo que no deben ser httpConnection.setRequestMethod(HttpConnection.GET);
httpConnection.setRequestMethod(HttpConnection.POST);
.
Y usted debe también establecer el contenido de longitud : httpConnection.setRequestProperty("Content-Length", Integer.toString(postmsg.length));
Y mientras estamos en ello me gustaría seguir adelante y establece los siguientes:
tipo de contenido : tal como "image / jpeg". No está seguro de lo que debería ser para MJPEG ... httpConnection.setRequestProperty("Content-Type", "image/jpeg");
agente de usuario He encontrado que algunos sitios bloquean el agente de usuario por defecto en el MRI (Java / xxx), pensando que es una araña, así que me gusta poner el usuario agent.httpConnection.setRequestProperty("User-Agent", "MyCoolApp/V1 (App_RIM)");
¿Qué versión de la JDE está usando? Es esto a través de HTTPS? Lo pregunto porque en las versiones más antiguas como 4.5 tenía que crear HTTP y HTTPS de forma diferente. En las versiones más recientes probablemente debería utilizar el nuevo ConnectionFactory, en lugar de conector.
Buena suerte y espero que la figura hacia fuera !!!