Android - сокет, подобный http-серверу, отправка изображения для встраивания в браузер

Я реализовал для своего приложения для 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();
}

[...]

}

}

Заранее спасибо!


person SpecTrum    schedule 26.02.2013    source источник


Ответы (1)


Причина, по которой изображение не загружается, заключается в том, что файл http://localhost:1234/img.jpg не обслуживается вашим приложением. Когда тег <img /> будет обработан, браузер перейдет к пути src и загрузит этот файл на страницу.

Я не знаю, как это реализовать навскидку (раньше я не реализовывал HTTP). Но вам, по крайней мере, придется обработать введенный запрос GET и провести различие между базовой веб-страницей и запросом изображения.

person Ancantus    schedule 26.02.2013