http协议怎么下载文件? ( 积分: 200 )

  • 主题发起人 主题发起人 gohoo
  • 开始时间 开始时间
G

gohoo

Unregistered / Unconfirmed
GUEST, unregistred user!
用clientsocket发送http的get协议从IIS下载文件.
当IIS的网站默认端口从80改变后,get协议怎么修改
才能正确得到文件啊?
现象:
从ie正常看到下载.但是程序不能.
报错10049.10061等...
下载测试的xml有时0字节.有时是一个固定的html:如下标识:
href="http://202.106.195.23:6688/aicss_test221.css"
/>
get协议中host我设置了好几种都无效
host:ip:port
host:ip
host:ip port
设置ip,port 为widestring
以上都无效.
到底那里错了啊
 
delphi的indy控件组里面有一个http的控件可以直接使用,或者去网上下载一个HTTPGet控件也可以
 
确认能用sock连接到服务器先.端口要正确.
下面是我HTTP类里的一个函数.或者你给个网址.我帮你试试.
string CHttp::BuildHttpParam(CUrlParse *pUrlObj, const string &ReferUrl, const string &Cookie)
{
string HttpParam("GET "
+ pUrlObj->GetFilePath() + m_HttpProtocolVersion + "/r/n");
HttpParam += "Accept: */*/r/n";
HttpParam += "Accept-Language: zh-cn/r/n";
HttpParam += "Pragma: no-cache/r/n";
HttpParam = HttpParam + "Host: "
+ pUrlObj->GetHostName() + "/r/n";
HttpParam += "User-Agent: Mozilla/3.0 (compatible;
TerryLibrary)/r/n";
HttpParam += "Connection: Keep-Alive/r/n";
if (!ReferUrl.empty())
{
HttpParam = HttpParam + "Referer: "
+ ReferUrl + "
/r/n";
}
if (!m_Cookice.empty())
{
HttpParam = HttpParam + "Cookie: "
+ m_Cookice + "
/r/n";
}
else
if (!Cookie.empty())
{
HttpParam = HttpParam + "Cookie: "
+ Cookie + "
/r/n";
}
return HttpParam + "/r/n";
}
 
哎,是port 过滤了,我太笨了.
 
后退
顶部