当前位置:  技术问答>linux和unix

如何用socket从internet上提取图像(使用http协议)

    来源: 互联网  发布时间:2015-06-22

    本文导语:  我用socket写了一个程序,根据url下载网页的源文件,基本过程就是: socket() -> connect() -> send() -> recv() 现在能下载text/html类型文件,但是下载image就不行,文件内容都改变了, 恳求高人指点!谢谢! 我发送的reque...

我用socket写了一个程序,根据url下载网页的源文件,基本过程就是:
socket() -> connect() -> send() -> recv()

现在能下载text/html类型文件,但是下载image就不行,文件内容都改变了,
恳求高人指点!谢谢!

我发送的request为:
GET url HTTP/1.0
Host: www.abc.com
Accept: */*
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded

|
要下载图像等文件,是不是还得再根据图像路径发一次连接请求阿,
比如:img src=/home/images/home01.gif>

|
看看这个:

    public boolean run() {
        try {
            socket = factory.createSocket(https_URL,Integer.parseInt(https_PORT));
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            InputStream inStream = socket.getInputStream();
            InputStreamReader inStreamReader = new InputStreamReader(inStream);
            BufferedReader in = new BufferedReader(inStreamReader);
            String strGet = "GET " + sSiteURL + " HTTP/1.0nn";
            out.write(strGet);
            out.flush();
            String line = "";
            line = in.readLine();
            if ("HTTP/1.0 200 OK".equals(line) || "HTTP/1.1 200 OK".equals(line)) {
                for (int i = 1; i  0) {
                            byte[] d = new byte[2048];   //         1400
                            numRead = inStream.read(d);
                            if (numRead > 0)
                                oSavedFileO.write(d, 0, numRead);
                            else
                                break;
                        }
                        oSavedFileO.flush();
                        oSavedFileO.close();

                        break;
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux socket 如何接受多帧图像数据
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗? iis7站长之家
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3