我自己做了个HTTP服务,下面代码是用IE登录时服务器收到的HTTP头信息,现在我想把里面的123456提取出来,就是GET /123456 HTTP/1.1中间的那个,有没有相应的方法.(IE里的地址为http://127.0.0.1:8000/123456)
谢谢!
GET /123456 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
Host: 10.1.1.238:8000
Connection: Keep-Alive

解决方案 »

  1.   

    HTTP 头定义
    GET <Path> HTTP/1.1
    这个Path就是你请求的文件的路径.举例来说:
    你如果访问:
    http://www.mySite.com/abc.html
    那么在http头中就是
    GET /abc.html HTTP/1.1要得到这个path,在asp.net里面调用
    Request.FilePath 就可以了
      

  2.   

    我的意思是在服务器这边得到这个路径.
    服务器是个WinFrm的
      

  3.   

    那你这个http服务是怎么做的?
      

  4.   

    try 

    //创建客户端连接对象
    tcpClient=serverListener.AcceptTcpClient();
    //得到网络流
    netStream=tcpClient.GetStream();
    //流读写器
    sr=new StreamReader(netStream); 

    catch(Exception re) 

    MessageBox.Show(re.Message); 

    string buffer=""; 
    string received=""; 
    //读流中一行
    received+=sr.ReadLine(); 
    while(received.Length!=0) 

    buffer+=received; 
    buffer+="\r\n"; 
    //received=""; 
    received=sr.ReadLine(); 

    //显示
    this.textBox1.Text += buffer; 
    this.textBox1.Text += "\n";
    //System.Web.HttpRequest hr;

    hr.InputStream();
    //将向客户端发送的信息转换成byte数组型,进行发送
    byte[] msg = System.Text.Encoding.GetEncoding("GB2312").GetBytes("<title>测试</title>\r\n<body>测试</body>");
    //发送回复
    netStream.Write(msg, 0, msg.Length);
    //关闭 
    sr.Close(); 
    netStream.Close(); 
    tcpClient.Close();
      

  5.   

    Request.Headers
    这个写在哪呀,是不是还要实例化?
      

  6.   

    Request.Headers只在WEB里面才有的,别的应用里没有此方法
      

  7.   

    tcpClient 
    http走在tcp的上层
      

  8.   

    to:grooving() tcpClient 
    http走在tcp的上层不明白你的意思.
      

  9.   

    读流中第一行
    received=sr.ReadLine(); 
    这样就得到了
    GET /123456 HTTP/1.1
    然后用正则表达式提取出 /123456
      

  10.   

    你要自己实现对Http包的解析,因为你要自己实现Http协议.或者调用Http API服务,是C\C++接口的.
      

  11.   

    普尔世纪是一家高新软件开发企业,秉持着创新(Innovation)、整合(Intergration)、速度(Acceleration)与国际化(Internationalization)的愿景,及其专业的软件开和软件销售,通信设备销售。通过普尔世纪一支精锐的软件开发、销售队伍,为客户提供高竞争力与创新的软件产品、通信设备。现因业务发展,需招聘2名技术人员
    1. 精通 c#和c++语言
    2. 具银行行业软件开发经验佳
    3. 有良好的沟通、领悟能力
    4. 有较好的团队合作精神
    7. 有良好的敬业精神,能够承受较大的工作压力
    工资薪金待遇:
    适用期三个月,适用期薪金3000,转为正式员工的薪金适工作能力再议,如员工在工作中为公司的发展做出较大贡献者,公司视情况给予分派公司股份.
    有意者可以将简历发到的我邮箱[email protected]
      

  12.   

    ProtocolType 枚举  指定 Socket 类支持的协议。 命名空间:System.Net.Sockets
    程序集:System(在 system.dll 中)语法
    Visual Basic(声明) 
    Public Enumeration ProtocolType
     
    Visual Basic(用法) 
    Dim instance As ProtocolType 
    C# 
    public enum ProtocolType
     
    C++ 
    public enum class ProtocolType
     
    J# 
    public enum ProtocolType
     
    JScript 
    public enum ProtocolType
     成员
      成员名称 说明 
     Ggp 网关到网关协议。  
     Icmp 网际消息控制协议。  
     IcmpV6 用于 IPv6 的 Internet 控制消息协议。  
     Idp Internet 数据报协议。  
     Igmp 网际组管理协议。  
     IP 网际协议。  
     IPSecAuthenticationHeader IPv6 身份验证头。有关详细信息,请参见位于 http://www.ietf.org 中的 RFC 2292 的 2.2.1 节。  
     IPSecEncapsulatingSecurityPayload IPv6 封装式安全措施负载头。  
     IPv4 Internet 协议版本 4。  
     IPv6 Internet 协议版本 6 (IPv6)。   
     IPv6DestinationOptions IPv6 目标选项头。  
     IPv6FragmentHeader IPv6 片段头。  
     IPv6HopByHopOptions IPv6 逐跳选项头。  
     IPv6NoNextHeader IPv6 No Next 头。  
     IPv6RoutingHeader IPv6 路由头。  
     Ipx Internet 数据包交换协议。  
     ND 网络磁盘协议(非正式)。  
     Pup PARC 通用数据包协议。  
     Raw 原始 IP 数据包协议。  
     Spx 顺序包交换协议。  
     SpxII 顺序包交换协议第 2 版。  
     Tcp 传输控制协议。  
     Udp 用户数据报协议。  
     Unknown 未知协议。  
     Unspecified 未指定的协议。  备注
    Socket 类使用 ProtocolType 枚举向 Windows Sockets API 通知所请求的协议。计算机上必须存在所请求的协议的低级别驱动程序软件,才能成功创建 Socket。