小弟最近用socket发送http请求到目标主机,为了排除干扰,双机用交叉线互联,
接收端主机IP:59.78.188.217
代码如下:
byte[] bytes = Encoding.ASCII.GetBytes("GET /test1 HTTP/1.1\r\nHost: 59.78.188.217/\r\nUser-Agent: Mozilla/4.0\r\nAccept: */*\r\nConnection:Close\r\n\r\n");把这个http请求用socket发送出去,接收端用wireshark抓包,总是返回400 bad request
socket确定没问题
编码方式:default,ascii,utf8都试过了,结果一样杯具。。
网上查了很多资料,http1.1头的格式到底该如何写?还请大家不吝赐教

解决方案 »

  1.   

    建议使用SYstem.net.HttpWebRequest对象
      

  2.   

    请求出现语法错误,http头问题

    System.Net.HttpWebRequest myRequest =(System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); 
      myRequest.Method = "HEAD"; 
      myRequest.Timeout = 100; 
      System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)myRequest.GetResponse(); 
    http://topic.csdn.net/u/20091015/21/cba7bce2-367e-49eb-9ba9-c060ebf3261a.html
      

  3.   

    string send =
    @"GET / 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, application/x-silverlight, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
    Host: 216.152.164.80
    Connection: Keep-Alive
    Accept-Language: zh-cn";
      

  4.   

    谢谢大家我用浏览器试过了,地址栏输入http://59.78.188.217/test1没有问题我把浏览器生成的http请求报文抓下来,在copy到我这里,用socket发送,还是bad request,不过我刚才注意了一下在错误的详细信息:Invalid Verb目前在google中
      

  5.   

    终于找到了,我自己写的socket加了一些信息在payload上,导致http头不正确,多谢大家,结贴了:)
    这样的头:GET /test1 HTTP/1.1\r\nHost: 59.78.188.217\r\n\r\n 就可以过了
      

  6.   

    看我的写法还是也出现这问题楼主有QQ不
    Get  data?race_date=31-03-2011&race_type=15Z&rc=5&x=0.23670741955064 HTTP/1.1
    Accept: */*
    Referer: Accept-Language:zh-cn
     Accept-Encoding: gzip,deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 2.0.50727)
    Host: cn.citibet.net
    Connection:Keep-Alive 
    Cookie: JSESSIONID=C4990CC80199E98429BDE5F8B8077462.node27;lang=CH;load_balancer=f39d9dc1-9f01-44c0-aa63-d7339a27ba2c;