idhttp传送例子

来源:互联网 发布:影武者 冰川网络 编辑:程序博客网 时间:2024/06/08 19:12
    procedure TForm1.Button1Click(Sender: TObject);
var
  Url :string;
  resstring :TStringStream;
  response :string;
  ResponseStr : string;

  SSLopen :TIdSSLIOHandlerSocket;
  reqstr :TStringStream;
  tempstr, tempstr2, sjc :string;
begin
  try
    IdHTTP1 :=TIdHTTP.Create(nil);
    IdHTTP1.Request.ContentType :='application/json';
    resstring := TStringStream.Create('');
    reqstr := TStringStream.Create('');

    SSLopen := TIdSSLIOHandlerSocket.Create(IdHTTP1);
    IdHTTP1.IOHandler := SSLopen;
    IdHTTP1.ReadTimeout :=50000;
//    IdHTTP1.Request.Connection :='Keep-Alive';
    try
      Url := 'https://api.acewill.net/user/account';
      sjc :=Gettimestamp; //时间戳
      tempstr :='cno%3D15862536136&appid=dp0DjvD81zqwJlOzxGfPjMJ&appkey=329cad81ebabce4b1a6203a202959fb3&v=2.0&ts='+Gettimestamp+'';
      tempstr2 := MD5Print(MD5String(tempstr));   //生成sig签名
      tempstr:='req={"cno":"15862536136"}&appid=dp0DjvD81zqwJlOzxGfPjMJ&v=2.0&ts='+Gettimestamp+'&sig='+tempstr2+'&fmt=JSON';

    //以流的方式提交参数
        resstring.Position :=0;
        reqstr.WriteString(tempstr);
        IdHTTP1.Post(Url,reqstr,resstring);
    except
        on e : Exception do
        begin
          ShowMessage(e.Message);
        end;
    end;
    ResponseStr := resstring.DataString;
    ResponseStr := UTF8Decode(ResponseStr);
    Memo1.Text := ResponseStr;
  finally
    IdHTTP1.Free;
    resstring.Free;
    reqstr.Free;
  end;
end;
原创粉丝点击