У меня есть вопрос об httpconnection и getresponsocode на Blackberry
-
26-09-2019 - |
Вопрос
Если я попытаюсь подключить камеру JPEG, это соединение работает правильно. Но когда я подключаюсь к камере MJPEG (JPEG), я не могу показать «System.out.Println (» onreturn Oncesi "+ httpconnection.getResponseCode ());" на выходной консоли. Я использую эмулятор и MD. Я могу показать на MDS, ... поток идет.
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);
}
Решение
Одна проблема в том, что вы не устанавливаете ваши заголовки запроса правильно.
Ваши данные публикации, поэтому не должны httpConnection.setRequestMethod(HttpConnection.GET);
быть httpConnection.setRequestMethod(HttpConnection.POST);
.
И вы также должны установить длина содержимого: httpConnection.setRequestProperty("Content-Length", Integer.toString(postmsg.length));
И пока мы на это, я бы пошел вперед и поставим эти:
Тип содержимого: Может быть, как «Image / JPEG». Не уверен, что это должно быть для MJPEG ... httpConnection.setRequestProperty("Content-Type", "image/jpeg");
Useragent. Я обнаружил, что некоторые сайты блокируют пользовательский агент по умолчанию в RIM (Java / XXX), думая, что это паук, поэтому мне нравится устанавливать пользовательский агент.httpConnection.setRequestProperty("User-Agent", "MyCoolApp/V1 (App_RIM)");
Какую версию JDE вы используете? Это через https? Я спрашиваю, потому что на более старых версиях, таких как 4.5, вам пришлось по-разному создавать HTTP и HTTPS. В новых версиях вы, вероятно, должны использовать новую ConnectionFactory вместо разъема.
Удачи, и я надеюсь, что вы узнаете это !!!