Java 获取IP摄像头';带HTTP请求的s图片

Java 获取IP摄像头';带HTTP请求的s图片,java,http-get,ip-camera,Java,Http Get,Ip Camera,我正试图通过来自java程序的HTTP GET请求访问Foscam C1 IP摄像头的图片 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 r

我正试图通过来自java程序的HTTP GET请求访问Foscam C1 IP摄像头的图片

    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);
    }
该url在浏览器中运行良好

它写道:

<html><body><img src="../snapPic/Snap_20151008-094559.jpg"/></body></html>
因此,我还对img url发出get请求: 答复:


404-找不到
404-找不到

好吧,我将解析图片URL的
img
标记并请求该标记。

您需要为图像数据使用其他URL参数,请参阅

也可以看看这篇C#文章
如果您希望获得连续的JPEG帧作为MJPEG流,则可以进行调整。您可以轻松地将该代码改编为Java

我不理解它。问题是:>>找不到404。@Fantom789,您在第一次请求后立即发出该请求吗?URL是否正确?是的,现在您可以看到我对问题的编辑。URL看起来不错:“+行所在位置:/snapPic/Snap_20151008-104725。jpg@Fantom789当退出第一个
循环时,
行为空(这是循环条件),而不是图像的实际URL。将
子字符串
的结果放入另一个变量中,不要重复使用
@Fantom789是的,这是JPEG图片数据。您需要使用
InputStream
读取它,因为它是二进制数据。顺便说一句,请注意,本文针对的是Foscam MJPEG模型,而不是HD模型(这些模型中的CGI API不同)。关于那篇文章中的PanTilt控制部分,我已经对其进行了改进,并添加了对MJPEG和HD Foscam模型的支持,另请注意,Foscam HD模型支持ONVIF(您可以在相机设置网页上设置ONVIF端口),因此可以使用Web服务抓取帧
    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);
    }
<?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>