socket获取web网站数据的方法

问题描述

通过HttpURLConnection我可以轻松的获取网站数据:public class NewSocket {public static String getNetData(String host) throws IOException {HttpURLConnection conn = (HttpURLConnection) new URL(host).openConnection();InputStream inputStream = conn.getInputStream();int len = 1;byte[] buffer = new byte[1024];ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();while ((len = inputStream.read(buffer)) != -1) {byteArrayOutputStream.write(buffer, 0, len);}return new String(byteArrayOutputStream.toByteArray());}public static void main(String[] args) {try {System.out.println(NewSocket.getNetData("http://localhost:8080/videoweb"));} catch (IOException e) {e.printStackTrace();}}}但是通过socket的话,我不知道怎么访问web数据。public class OtherNewSocket {public static String getNetData(String host, int port) throws IOException {Socket socket = new Socket(host, port);byte[] buffer = new byte[1024];ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();int len = 0;while ((len = socket.getInputStream().read(buffer)) != -1) {byteArrayOutputStream.write(buffer);}return new String(byteArrayOutputStream.toByteArray());}public static void main(String[] args) {try {System.out.println(OtherNewSocket.getNetData("localhost", 8080));} catch (IOException e) {e.printStackTrace();}}}求指教,然后我想知道通过url访问和通过socket访问有什么不同点,我理解的就是,通过url访问访问的直接是某个项目网页地址,而通过socket访问呢,则是端对端的访问,也就是访问的其实是目标服务器的某一端口上的进程,但是如果要具体访问进程上的项目,也就是默认欢迎页面index.jsp,又该如何做呢 问题补充:khan 写道

解决方案

你需要看下http协议的底层啊,live.html是一个资源路径啊,获取别的就写别的了,只是举个例子。你可以参看http协议
解决方案二:
别忘给分啊,兄弟!
解决方案三:
package com.iteye.wenda.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class HttpGetWebPage {public static void main(String[] args) {try {Socket socket = new Socket("mdcc.csdn.net", 80);BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(),true);out.print("GET /live.html HTTP/1.1");out.println("/n");String rep = "";while(null!=(rep = reader.readLine())){System.out.println(rep);}out.flush();out.close();reader.close();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
解决方案四:
模拟HTTP发送一个get请求即可

时间: 2024-09-27 10:16:35

socket获取web网站数据的方法的相关文章

javascript获取web应用根目录的方法

 这篇文章主要介绍了javascript获取web应用根目录的方法,需要的朋友可以参考下  代码如下: <script>  function getRootPath(){  var strFullPath=window.document.location.href;  var strPath=window.document.location.pathname;  var pos=strFullPath.indexOf(strPath);  var prePath=strFullPath.sub

php curl 获取远程网站数据

问题描述 php curl 获取远程网站数据 我想通过php语言的 curl远程抓取下面网站查询的数据! 网址是:http://www.taodaxiang.com/credit/index/init 如下图,查询epni59 获取查询的结果: 解决方案 不管什么网站,思路都是一样的,就是用fiddler抓浏览器的通讯,然后自己的程序模仿. 解决方案二: PHP curl反回远程数据大小结合PHP和CURL抓取远程网页数据 解决方案三: 网上找个例子改改嘛.如果不会改,就去PHP官网系统学一下.

PHP生成和获取XML格式数据的方法_php技巧

本文实例讲述了PHP生成和获取XML格式数据的方法.分享给大家供大家参考,具体如下: 在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,这里将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. 生成XML格式数据 我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `studen

PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】_php技巧

本文实例讲述了PHP实现登录搜狐广告获取广告联盟数据的方法.分享给大家供大家参考,具体如下: 一直有一个想法,每次都要登录去看联盟昨天收益多少?每天都要登录和麻烦,能不能做一个汇总发邮件的功能呢? 可惜了,验证码绕不过去,只能想一个办法.先在服务器手动打一次验证码,然后在通过定时器,每隔10分钟请求一个页面 这样的话Cookies就不会失效,,然后每周只需要跟我汇总数据就Ok了.. 远程提交表单的原理,可以参考:PHP基于curl后台远程登录正方教务系统的方法 参考的代码还是一样的如下 获取验证

四种数据库随机获取10条数据的方法_Access

四种数据库随机获取10条数据的方法 SQL Server: 复制代码 代码如下: SELECT TOP 10 * FROM T_USER ORDER BY NEWID() ORACLE: 复制代码 代码如下: SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10 MySQL: 复制代码 代码如下: SELECT * FROM T_USER  ORDER BY  RAND() LIM

Android编程实现获取所有传感器数据的方法

本文实例讲述了Android编程实现获取所有传感器数据的方法.分享给大家供大家参考,具体如下: main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi

Web页面数据导出方法概述之导出excel

前言:随着BS体系结构的广泛使用,相对应的数据保存技术也要改进,对应Web页面,也就是我们通常认识到的HTML文件,由标示关键字与数据混合组成的文件.Web页面数据导出简单地说,就是分离数据与格式,同时保存数据为另外一种格式.正文:分析HTTP Response等文件头信息,对如何处理Web页面非常有用,下面简单地介绍几种常用的方法,算是在技术上学习,非理论上学习.下面的代码分析如何通过修改http头文件,产生excel的文件供用户下载,以达到数据导出的功能.这种非实际在服务器端生成文件的优点就

用mysql_fetch_array()获取当前行数据的方法详解_php技巧

同mysql_fetch_row()类似,函数mysql_fetch_array()也是获取结果集中当前行数据,并在调用后自动滑向下一行.其定义如下. 复制代码 代码如下: array mysql_fetch_array(int result, int [result_type]) 参数说明如下.(1)result:由函数mysql_query()或mysql_db_query()返回的结果标识,用来指定所要获取的数据的SQL语句类型.(2)result_type:用于指定结果集类型,可选,取值

禁止ajax缓存获取程序最新数据的方法_javascript技巧

今天做项目,几乎所有的提交都是通过ajax来提交,我测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台.每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存问题.纠结了很久,终于解决了,在这里总结一下. 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL