2012-06-10 34 views
-1

对不起..我知道小英语...为了发布列表框项目IDHTTP?

我想给他们发送所有列表框项目。

我的代码(发送到第一项);

var 
    i: Integer; 
    satir: Integer; 
    str: TStringList; 
    response: TStringStream; 
begin 
    str := TStringList.Create; 
    Response:= TStringStream.Create(''); 
    satir := ListBox1.Items.Count; 
    try 
    str.Clear; 
    IdHTTP1.Disconnect; 

    str.Add('author='+Edit1.Text+''); 
    str.Add('email='+Edit2.Text+''); 
    str.Add('url='+Edit3.Text+''); 
    str.Add('comment='+Memo1.Text+''); 
    str.Add('comment_post_ID='+'1'); // Hidden items. When I delete the error does not. 
    for i:= 0 to satir do 
    begin 
     IdHTTP1.Post(ListBox1.Items.strings[i],str,Response); 
     IdHTTP1.Disconnect; 
     MessageDlg('Ok.', mtinformation,[mbOK],0); 
    end; 
    except 
    on e: exception do 
    begin 
     str.Free; 
     Response.Free; 
    end; 
    end; 
end; 

如果你纠正我的错误,我会很高兴。

+0

这不能被纠正或改进不知道服务器端 – mjn

+0

假设列表框不实际包含正确的网址,什么是正经历的实际问题? –

+0

@Remy Lebeau,只发送第一行。 (Listbox items:site urls。) – user1424940

回答

1

代码中有一些拼写错误和泄漏。试试这个:

var 
  i: Integer; 
  satir: Integer; 
  str: TStringList; 
begin 
  satir := ListBox1.Items.Count; 
    str := TStringList.Create; 
  try 
    IdHTTP1.Disconnect; 

    str.Add('author='+Edit1.Text+''); 
    str.Add('email='+Edit2.Text+''); 
    str.Add('url='+Edit3.Text+''); 
    str.Add('comment='+Memo1.Text+''); 
    str.Add('comment_post_ID='+'1'); // forgot it. Hidden item. Could this be the problem? 
    for i:= 0 to satir-1 do 
    begin 
      try 
     IdHTTP1.Post(ListBox1.Items.Strings[i], str); 
     MessageDlg('Ok', mtinformation, [mbOK], 0) 
    except 
     on E: Exception do 
      MessageDlg('Error: ' + E.Message, mtError, [mbOk], 0); 
     end; 
     IdHTTP1.Disconnect; 
    end; 
  finally 
    str.Free; 
  end; 
end; 
+0

第一篇文章:Complate。 第二篇文章:错误:HTTP/1.1 500内部服务器错误 – user1424940

+0

'str.Add('comment_post_ID ='+'1');'< - 隐藏的项目,这可能是问题吗? – user1424940

+0

没有看到您发布的实际URL但是隐藏的字段对于发送很重要,并且确保字段的编码也是正确的。在最新版本的Indy中,“TIdHTTP”会为你编码,但是旧版本不会对空格和特殊字符等内容进行编码,可能是由于发布的网页格式不正确而导致“500”回复。如果您不断收到错误,请使用数据包嗅探器来比较网页浏览器发布网页表单的方式以及Indy p加上它。 –