关于NMHTTP的问题,昨天搞了整一天没搞定...

alanwan 2004-01-28 01:43:38
用NMHTTP1->Get(URL)得到的NMHTTP1->Body和在浏览器里直接输入URL得到的却是完全不一样的结果,换了Get和Post都不行,又把NMHTTP1->SendHeader里加了和IE完全一样的头,还是不行!会是什么原因呀?郁闷ing...
...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alanwan 2004-01-29
  • 打赏
  • 举报
回复
好,多谢matq2008(叶子.net) ,我截获header分析了一下,是Post过去的URL被urlencoded了,而如果用文件方式当Post的第二参数,则没有真正被encode,反而通过。再次感谢matq2008(叶子.net),结帐!
alanwan 2004-01-29
  • 打赏
  • 举报
回复
对,Get是不能超过1024,可是我也试了Post,结果也还是不行,为什么?
叶子哟 2004-01-29
  • 打赏
  • 举报
回复
get方式,参数中不能超过1024个字符
alanwan 2004-01-28
  • 打赏
  • 举报
回复
对不起,刚刚我发的URL可能有问题,请用下面的试试。
http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=gtcagttactcccggaggcaatgctgctgttcagctcttgtgtttttgtggccagggtcttcatgaacactaataggggtaccaggccctcttccttgttagaagaaatcaggataacaaaggtatattgggcacccctacaaaaggaatctgtatctgtatcaagatgatctgaagaacagcttctacctttaggaatgtctagtgttccaaaatgactagcatcttccattttgccattatcttcatgttaatacttcagatcagaatacaattatctgaagaaagtgaatttttagttgataggtcaaaaaacggtctcatccacgttcctaaagacctatcccagaaaacaacaatcttaaatatatcgcaaaattatatatctgagctttggacttctgacatcttatcactgt&DATABASE=nr&CMD=Put&FILTER=L&EXPECT=10&FORMAT_TYPE=HTML&PROGRAM=blastn&CLIENT=web&SERVICE=plain&NCBI_GI=on&PAGE=Nucleotides
alanwan 2004-01-28
  • 打赏
  • 举报
回复
sorry, matq2008, 好像还是不行呀,这样吧,我把遇到问题的URL附上,大伙看看是不是用TNMHTTP->Get和用IE完全不一样呀,谢了!我是焦头烂额了...

URL:http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=tgataggtcaaaaaacggtctcatccacgttcctaaagacctatcccagaaaacaacaatcttaaatatatcgcaaaattatatatctgagctttggacttctgacatcttatcactgtcaaaactgaggattttgataatttctcataatagaatccagtatcttgatatcagtgttt&DATABASE=nr&HITLIST_SIZE=10&FILTER=L&EXPECT=10&FORMAT_TYPE=HTML&PROGRAM=blastn&CLIENT=web&SERVICE=plain&NCBI_GI=on&PAGE=Nucleotides&CMD=Put

叶子哟 2004-01-28
  • 打赏
  • 举报
回复
你怎么用的?
我一般如下:
TNMHTTP * MyHttp;

HttpString= Form2->AspAddress+"modifypass.asp?user="+(AnsiString)Form3->TeThemeEdit1->Text+"&oldpass="+(AnsiString)Form3->TeThemeEdit2->Text+"&newpass1="+(AnsiString)Form3->TeThemeEdit3->Text+"&newpass2="+(AnsiString)Form3->TeThemeEdit4->Text;
try
{
MyHttp = new TNMHTTP(0);
}
catch(Exception &exception)
{
return;
}

if(MyHttp != NULL)
{
MyHttp->TimeOut = 90*1000;
MyHttp->InputFileMode = false;
MyHttp->OutputFileMode = false;
MyHttp->ReportLevel = Status_Basic;
MyHttp->Proxy = "";
MyHttp->ProxyPort = 0;
MyHttp->HeaderInfo->Cookie = "";
MyHttp->HeaderInfo->LocalMailAddress = "";
MyHttp->HeaderInfo->LocalProgram = "";
MyHttp->HeaderInfo->Referer = "";
MyHttp->HeaderInfo->UserId = "";
MyHttp->HeaderInfo->Password = "";
try
{
MyHttp->Get(HttpString);
}
catch(Exception &exception)
{
delete MyHttp;
}
ReturnStr = MyHttp->Body;
delete MyHttp;
MyHttp = NULL;
alanwan 2004-01-28
  • 打赏
  • 举报
回复
谢谢yuanhen,可是我试了一下,也不行。
yuanhen 2004-01-28
  • 打赏
  • 举报
回复
把TimeOut设大点试试。
NMHTTP1->TimeOut = 200000;
NMHTTP1->Get("http://www.csdn.net");
Memo1->Text = NMHTTP1->Body;
alanwan 2004-01-28
  • 打赏
  • 举报
回复
还请各位大虾不吝赐教啊...,小弟有理了。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧