关于网友提出的“ 一个有关HTTP协议的底层技术性问题(高分相送)”问题疑问,本网通过在网上对“ 一个有关HTTP协议的底层技术性问题(高分相送)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 一个有关HTTP协议的底层技术性问题(高分相送)描述:
各位熟悉网络编程的朋友,一个有关HTTP的方法问题使我百思不得其解,HTTP1.1的方法中,CONNECT是针对代理服务器建立连接的一个方法,但我使用了这个方法,却得到以下的问题:
ClientSocket1的属性设置为Address为代理服务器地址,ClientType为ctBlooking,Port为8080.
1. 我使用方法为:
var
vText: String;
buf: array[0..1023] of Char;
begin
ClientSocket1.Open;
vText := 'CONNECT www.163.com:80 HTTP/1.1\r\n\r\n';
ClientSocket1.Socket.SendBuf(Pointer(vText)^, Length(Text));
ClientSocket1.Socket.ReceiveBuf( buf, SizeOf(buf));
.....
end;
但最后代理服务器响应回来的内容可空的。
2. 我使用了另一种做法:
var
vText: String;
buf: array[0..1023] of Char;
begin
ClientSocket1.Open;
vText := 'CONNECT www.163.com:80 HTTP/1.1';
ClientSocket1.Socket.SendBuf(Pointer(vText)^, Length(Text));
vText := #13#10#13#10;
ClientSocket1.Socket.SendBuf(Pointer(vText)^, Length(Text));
ClientSocket1.Socket.ReceiveBuf( buf, SizeOf(buf));
.....
end;
用了这种做法,代理用务器回复的错误码却是400,以下是回复的内容:
HTTP/1.1 400 Bad Request ( The data is invalid. )
Via:1.1 TL_ODC
Connection: close
Proxy-Connection: close
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Content-Length: 3671
- 明星图片