在delphi6下
使用var
  Response : TStringStream;
  Request : TStrings;
  FileStream : TStrings;
begin
  FileStream := TStringList.Create();
  Response := TStringStream.Create('');
  Request := TStringlist.Create();
  try
    FileStream.LoadFromFile(Edit1.Text );
    Request.Append(widestring('MSG_DATA=' + FileStream.Text ));
    try
      IdHTTP1.Post(Edit2.Text ,Request,Response);最后在jsp上收到'MSG_DATA='就为null
可用d7的IdHTTP就没问题
是否d6在Post上存在问题呢??

解决方案 »

  1.   

    d6在Post 应该没问题的吧 应该是你Request里没值吧 所以就为空了---------------------------------------------------------------------------------
    procedure Post(URL: string; const Source: TStrings; const AResponseContent: TStream); overload;
    procedure Post(URL: string; const Source: TStream; const AResponseContent: TStream); overload;
    ----------------------------------------------------------------------------------post的两种参数基本都一样,有一种用流,还有一种用TStrings 而你Response 创建的时候把它创建为空了   Response := TStringStream.Create(''); 仔细检查检查~~~~ D6的INDY没这样的BUG的
      

  2.   

    在post时Response会收到服务器返回的数据,这里没问题.
    其实这个问题已解决了加上      
    IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded'  ;就行了
    可是还有个问题,就是我FileStream.LoadFromFile的文件(xml)中如果存在%就会在服务器端
    同样出现[jsp上收到'MSG_DATA='就为null]
    请教了!!!
      

  3.   

    哎,我自己解决了.......
    对%&需要进行16进制转义处理