【问题标题】:post parameters to asp web page through internet using Delphi使用Delphi通过互联网将参数发布到asp网页
【发布时间】:2017-01-12 03:25:17
【问题描述】:

我在 Delphi 中编写了这段代码

TForm10.Button1Click(Sender: TObject); var Response: TStringStream; Params: TStringList; 
 begin 
  Params := TStringList.Create; 
  try
   Params.Add('redirect=http://localhost:1645/default.aspx'); 
   Params.Add('long=' + edit1.Text); 
   Params.Add('lat=' + edit2.Text); 
   Response := TStringStream.Create(''); 
   try 
    IdHTTP1.AllowCookies := True; 
    IdHTTP1.HandleRedirects := True;    
    IdHTTP1.Post('http://localhost:1645/default.aspx', Params, Response); 
    memo1.Text := Response.DataString; 
   except 
    on E: Exception do 
     begin 
      showmessage('Error: ' + E.Message); 
     end;
   end;  
  end;
 end; 

要将参数发送到 aspx 页面,当我在 VS 和 IIS 中运行时,Web 应用程序会打开浏览器,我手动输入参数(对于谷歌地图来说,它是 long 和 lat)浏览器接受参数并显示地图位置,当我尝试使用上面的代码发送浏览器没有做任何事情,任何帮助使用delphi发布参数并且服务器使用参数执行url?

代码 c# asp

  public partial class YourFirstGoogleMap : System.Web.UI.Page
  {
    public string v;
    public string c;
    protected void Page_Load(object sender, EventArgs e)
    {
      v = Request.QueryString["long"];
      c = Request.QueryString["lat"]; 
    }
  }

和aspx

<script type ="text/javascript">
function InitializeMap() 
{
    var latlng = new google.maps.LatLng(<%=v%>, <%=c%>);
    var myOptions = {
        zoom: 3,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
  var map = new google.maps.Map(document.getElementById("map"),    myOptions);
 }
 window.onload = InitializeMap;
</script>`

如何让javascript监听参数?

【问题讨论】:

    标签: javascript asp.net google-maps delphi


    【解决方案1】:

    您的 ASP C# 代码期望在 URL 查询字符串中发送参数,但您的 Delphi 代码将它们发送到 POST 正文中。正确的 Delphi 代码看起来更像这样:

    procedure TForm10.Button1Click(Sender: TObject);
    begin
      try
        IdHTTP1.AllowCookies := True; 
        IdHTTP1.HandleRedirects := True;    
        Memo1.Text := IdHTTP1.Get('http://localhost:1645/default.aspx?redirect=' + TIdURI.ParamsEncode('http://localhost:1645/default.aspx') + '&long=' + TIdURI.ParamsEncode(edit1.Text) + '&lat=' + TIdURI.ParamsEncode(edit2.Text)); 
      except 
        on E: Exception do 
        begin 
          ShowMessage('Error: ' + E.Message); 
        end;
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 2012-01-06
      • 2020-05-23
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2014-10-18
      相关资源
      最近更新 更多