Android - Socket喜欢http服务器,将嵌入图像发送到浏览器

时间:2013-02-26 16:52:30

标签: java android httpserver

我为我的Android应用程序实现了一个简单的HTTP服务器,它使用套接字传递html标记,一切都按预期进行。

但我尝试在客户端(浏览器)加载一个简单的嵌入图像(http:// localhost:1234 / img.jpg \“/>),我不知道如何使套接字加载它。 任何人都可以帮我提供坐标吗?

我的简单http服务器:

public class MainClass extends Activity {
  // Called when the activity is first created 
  // It was called from onCreate method surrounded with try catch 
    [...]

ServerSocket ss = new ServerSocket(1234);
while (true) {
  Socket s = ss.accept();
  PrintStream out = new PrintStream(s.getOutputStream());
  BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
  String info = null;
  while ((info = in.readLine()) != null) {
    System.out.println("now got " + info);

    if(info.equals(""))
        break;
  }
  out.println("HTTP/1.0 200 OK");
  out.println("MIME_version:1.0");
  out.println("Content_Type:text/html");
  String c = "<html>" +
     "<head></head>" + 
     "<body>" + 
     "<img src=\"http://localhost:1234/img.jpg\" />" + // << Does not load in the browser
     "<h1> hi </h1>" + 
     "</body>" +
     "</html>";

  out.println("Content_Length:" + c.length());
  out.println("");
  out.println(c);
  out.close();
  s.close();
  in.close();
}

[...]

}

}

提前致谢!

1 个答案:

答案 0 :(得分:0)

未加载图片的原因是您的应用程序未提供文件http://localhost:1234/img.jpg。处理<img />标记时,浏览器将转到src路径并将该文件加载到页面中。

我不知道如何实现这个(我之前没有实现过HTTP)。但您至少必须处理输入的GET请求,并区分基本网页和图像请求。