2015-10-08 3 views
1

Я пытаюсь получить изображение камеры IP-камеры Foscam C1 с запросом HTTP GET из программы Java.Получить изображение IP-камеры с запросом HTTP

HttpClient httpClient = new DefaultHttpClient(); 
    HttpGet httpGet = new HttpGet("http://192.168.1.6:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USERNAME&pwd=PASSWORD"); 
    HttpResponse response = httpClient.execute(httpGet); 

    InputStream is = response.getEntity().getContent(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(is)); 
    String line = null; 
    while((line = in.readLine()) != null) { 
     System.out.println(line); 
    } 

Адрес страницы прекрасно работает в браузере.

Он выписывает это:

<html><body><img src="../snapPic/Snap_20151008-094559.jpg"/></body></html> 

Как я могу получить саму картину?

///// EDIT: /////

while((line = in.readLine()) != null) { 
     line = line.substring(24, 57); //here I get the needed part 
     System.out.println(line); 
    } 
    //This all stuff should go into the loop: 
    HttpGet httpGetPicture = new HttpGet("http://192.168.1.6:88/" + line); 
    response = httpClient.execute(httpGetPicture); 

    is = response.getEntity().getContent(); 
    in = new BufferedReader(new InputStreamReader(is)); 
    line = null; 
    while((line = in.readLine()) != null) { 
     System.out.println(line); 
    } 

Так что я также сделать запрос GET для Img URL: Ответ:

<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>404 - Not Found</title> 
</head> 
<body> 
    <h1>404 - Not Found</h1> 
</body> 
</html> 

ответ

1

Ну, я 'd проанализируйте тег img для URL-адреса изображения и сделайте запрос для этого.

+0

Я этого не понимаю. Проблема заключается в следующем: http://192.168.1.6:88/snapPic/Snap_20151008-103709.jpg >> 404 не найден. – Tomi

+1

@ Fantom789 И вы делаете этот запрос сразу после первого запроса? И правильный URL? – Kayaman

+0

Да, теперь вы видите мое редактирование по вопросу. URL выглядит хорошо: «http://192.168.1.6:88/» + строка где строка: /snapPic/Snap_20151008-104725.jpg – Tomi

1

вам нужно использовать другой Params URL для данных изображения, см http://www.foscam.es/descarga/ipcam_cgi_sdk.pdf

также проверить это C# статьи http://blogs.infosupport.com/writing-an-ip-camera-viewer-in-c-5-0/ , что вы можете адаптировать, если вы хотите, чтобы получить последовательные кадры в формате JPEG, как поток MJPEG. Вы можете легко адаптировать этот код к Java

+0

Кстати, обратите внимание, что статья предназначена для моделей Foscam MJPEG, а не для HD (API CGI отличается от них). Что касается элемента управления PanTilt из этой статьи, я разработал его и добавил поддержку моделей MJPEG и HD Foscam, см. Http://FoscamController.codeplex.com. –

+0

также обратите внимание, что модели Foscam HD просачиваются для поддержки ONVIF (вы можете установить Порт ONVIF на веб-странице настроек камеры) - http://www.onvif.org, чтобы можно было использовать веб-службы для захвата кадров –