送分了:IdHTTP控件的Post方法无法Post数据到WebServer的问题自己已经搞定!进来捧场者前10名每人送分30。还差一人就放分! (300分)

  • 主题发起人 drawpharos
  • 开始时间
D

drawpharos

Unregistered / Unconfirmed
GUEST, unregistred user!
以下代码,从运行结果看,没有Post任何数据给Web.
环境:WinXP Pro /C++Builder 6,BCB6自带的Indy控件
代码:
int TForm1::CheckWeb(String sHost)
{
    TMemoryStream *ovData=new TMemoryStream();
    TStringStream *ovResult=new TStringStream("");
    AnsiString rtBody;
    int rtCode;
    try
    {
      ovData->Write("userid=user&password=pass",26);
      ovData->Position=0;
      ovResult->Position=0;
      IdHTTP1->Post(sHost,ovData,ovResult);
      ovResult->Position=0;
      rtBody=ovResult->ReadString(ovResult->Size);
      if (rtBody.SubString(0,39)=="<?xml version=/"1.0/" encoding=/"GB2312/"?>")
        rtCode=0;
      else
        rtCode=1;
    }
    catch(...)
    {
      rtCode=2;
    }
    ovData->Free();
    ovResult->Free();
    return rtCode;
}
[red]问题已解决!只要设 [blue]IdHTTP1->Request->ContentType = 'application/x-www-form-urlencoded'[/blue]即可[:)][/red]
 
应该可以。
 
向楼主学习一下!
 
捧场!!
 
这是什么意思哦?
 


真的可以了!
不过'application/x-www-form-urlencoded'是什么意思,还有没有别的
 
[red]application/x-www-form-urlencoded[/red]表明From提交的时候是普通的提交,就是以[brown]&amp;[/brown]分隔的[purple]变量名=变量值[/purple]对。
 
邮件服务器有没有验证信息
Delphi6 代码
idSMTP_One.UserId:=trim(edit2.Text);
//此代替我邮箱的真正用户名与密码
idSMTP_One.Password:=trim(edit3.Text);
idSMTP_One.Authen
ticationType:=atLogin;
idSMTP_One.SocksInfo.UserID:=idSMTP_One.UserId;
idSMTP_One.SocksInfo.Password:=idSMTP_One.Password;
idSMTP_One.Host:=trim(edit1.Text);//'stmp.eyou.com'
with IdMessage1do
begin
Body.Text:=memo1.text;
From.Text :='';//邮箱地址;
Recipients.EMailAddresses :=trim(edit5.Text);
{ To: header }
Subject := trim(edit4.Text);
{ Subject: header }
Priority := TIdMessagePriority(mpNormal);
{ Message Priority }
CCList.EMailAddresses := '';
{CC}
BccList.EMailAddresses := '';
{BBC}
end;
IdMessage1.CharSet:='GB2312';
filename1:=''//附件名称;
TIdAttachment.Create(IdMessage1.MessageParts, filename1);
idSMTP_One.Connect;
try
idSMTP_One.Send(IdMessage1);
messagebox(handle,'发送成功','信息发送成功!',0);
idSMTP_One.Disconnect;
except
messagebox(handle,'发送失败','信息发送失败!',0);
idSMTP_One.Disconnect;
end;
 
我怎么刚好是十一啊
 
放分了!
 
顶部