package logs:
{
[----Get1----]
GET /2220_Hilary%20Stagg%2F7334_Dream%20Spiral%5B%CA%FA%C7%D9%5D%2F70534_track01.mp3 HTTP/1.1
Host:music.ustc.edu.cn
User-Agent:Foobar2000
Accept:*/*
Icy-MetaData:1
[----Response1----]
HTTP/1.1 404 Not Found
Connection: Keep-Alive
Content-Length: 29
Page Not Found
}
I can get this file using MSIE, FlashGet etc...
package logs:
{
[----Get2----]
GET /2220_Hilary%20Stagg%2F7334_Dream%20Spiral%5B%CA%FA%C7%D9%5D%2F70534_track01.mp3 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
Range: bytes=101948-
Unless-Modified-Since: Mon, 25 Aug 2003 20:59:35 GMT
If-Range: "16282772-dpekhilh"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.1.4322)
Host: music.ustc.edu.cn:8088
Connection: Keep-Alive
[----Response2----]
HTTP/1.1 200 OK
Content-Type: audio/mpeg
Connection: Keep-Alive
Date: Thu, 04 Dec 2003 11:50:17 GMT
Server: TUX/2.0 (Linux)
Content-Length: 16282772
ETag: "16282772-dpekhilh"
Accept-Ranges: bytes
Last-Modified: Mon, 25 Aug 2003 20:59:35 GMT
}
What's the difference between the request of foobar2000 and MSIE
???????
There is a space char after the ":" char of each http tag in MSIE's request header but not in the foobar2000's.
I tested this with telnet: add a space char after each ":" char in boobar2000's original http request header. It works now!!!
package logs:
{
[----Get3----]
GET /2220_Hilary%20Stagg%2F7334_Dream%20Spiral%5B%CA%FA%C7%D9%5D%2F70534_track01.mp3 HTTP/1.1
Host: music.ustc.edu.cn
User-Agent: Foobar2000
Accept: */*
Icy-MetaData: 1
[----Response3----]
HTTP/1.1 200 OK
Content-Type: audio/mpeg
Connection: Keep-Alive
Date: Thu, 04 Dec 2003 13:02:41 GMT
Server: TUX/2.0 (Linux)
Content-Length: 16282772
ETag: "16282772-dpekhilh"
Accept-Ranges: bytes
Last-Modified: Mon, 25 Aug 2003 20:59:35 GMT
}
I think the " " is needed. At least in the http 1.1 RFC doc.
I recompiled the foo_read_http source code, it works for me now.