通过HTTP-POST连接到Delphi应用程序的php脚本[通过Internet]

我已经编写了一个位于我的远程服务器中的测试PHP脚本,并且
我正在使用Delphi代码 对该php文件执行Http_Post。</ p>

当我在本地服务器上执行此操作时它非常有效,但是在</ p>


套接字错误#10061 - 连接被拒绝</ p>
</ blockquote>

错误。</ p>

这是我用来做Http的代码 发布:</ p>

  function TForm1.doPost(Url:String):string; 
var
lHTTP:TIdHTTP;
lParamList:TStringList;
begin
lParamList:= TStringList .Create;
lParamList.Add('service_test = Testing Server');

lHTTP:= TIdHTTP.Create(nil);
尝试
结果:= lHTTP.Post(Url,lParamList);
prgView.StepIt;
最后
lHTTP.Free;
lParamList.Free;
end;
end;
</ code> </ pre>

网址可以访问,浏览器 和其他应用程序。 [使用具有相同php脚本的Android应用程序测试] </ p>

Url: http://pbcserver.dlinkddns.com/users/priyabrata/contest.php </ p>

Php脚本:</ p>

   if(isset($ _ POST [“service_test”])){
$ val = $ _POST [“service_test”];
if($ val ==“Testing Server”){
$ response [“ 成功“] =”1“;
echo(json_encode($ response));
}
else {
$ response [”Success“] =”0“;
echo(json_encode($ response)) ;
}
}
else {
$ response [“Success”] =“0”;
echo(json_encode($ response));
}
</ code> </ pre>


新观察</ strong>:</ p>

当我从Delphi中运行应用程序时,帖子不起作用并获得
上面的错误,但是当我从Windows运行创建的.exe时,就像
任何其他应用程序一样,它运行正常!</ p>
</ blockquote>
</ div>

展开原文

原文

I've written a test php script located in a remote server of mine, and I am using Delphi code to do a Http_Post to that php file.

It works perfectly when I am doing it on a local server, but fails with a

Socket Error #10061 - Connection Refused

error.

Here is the code I am using to do the Http Post :

function TForm1.doPost(Url : String): string;
var
  lHTTP: TIdHTTP;
  lParamList: TStringList;
begin
  lParamList := TStringList.Create;
  lParamList.Add('service_test=Testing Server');

  lHTTP := TIdHTTP.Create(nil);
  try
    Result := lHTTP.Post(Url, lParamList);
    prgView.StepIt;
  finally
    lHTTP.Free;
    lParamList.Free;
  end;
end;

The url is reachable fro, browser and other applications viz. [Tested with an android app with the same php script]

Url : http://pbcserver.dlinkddns.com/users/priyabrata/contest.php

Php Script :

if (isset($_POST["service_test"])){
    $val = $_POST["service_test"];
    if ($val == "Testing Server"){
        $response["Success"] = "1";
        echo (json_encode($response));
    }
    else{
        $response["Success"] = "0";
        echo (json_encode($response));
    }
}
else{
    $response["Success"] = "0";
    echo (json_encode($response));
}

New Observation :

When I run the app from within Delphi, the post doesn't work and get the above error,however when I run the created .exe from Windows like any other app, it works perfectly!

doulu6234
doulu6234 我有一个静态的ip@moskito-x它不会改变。我知道这一点,我怎么做你上面所说的,它保持不变
5 年多之前 回复
duancuisan2503
duancuisan2503 :去这个网站showMyIP写下你的ip。关闭你的DSL路由器或其他什么,等待,开机路由器,去showMyIP看你的IP,我很确定它是不一样的!
5 年多之前 回复
dongtao6842
dongtao6842 不,我可以从服务器打开网页。它处于桥接模式[VirtualBox]。我也可以通过互联网访问它。
5 年多之前 回复
dqkf49487
dqkf49487 服务器是否可以访问互联网?你能从服务器打开一些网页吗?您的服务器可能只能从本地网络中访问,我猜您的主机和WM共享同一个本地网络。
5 年多之前 回复
doulu1968
doulu1968 那太奇怪了。该服务器在我的机器中的VM中运行,我可以访问它。
5 年多之前 回复
dou8mwz5079
dou8mwz5079 downforeveryoneorjustme.com/pbcserver.dlinkddns.com说服务器已关闭
5 年多之前 回复
douzhanhui5662
douzhanhui5662 由于安全原因,可以阻止ICMP,因此无法使用的HTTP服务器并不常见
5 年多之前 回复
doudou1897
doudou1897 我也无法打开你的网站。更。我甚至无法PING托管您网站的服务器。我是PING“目标网络无法访问”的回复
5 年多之前 回复
dongyoulou4829
dongyoulou4829 奇怪。我可以通过浏览器访问它。会像你说的那样稍后试试
5 年多之前 回复
drmticpet66231422
drmticpet66231422 我无法连接到您的服务器(通过浏览器或delphi)。出错:网络超时服务器pbcserver.dlinkddns.com发布响应时间过长。该网站暂时无法使用,请稍后再试。如果您无法访问任何其他网站,请检查网络/Internet连接。如果您的计算机或网络受防火墙或代理保护,请确保允许Firefox访问Internet。
5 年多之前 回复
dsgdf45654
dsgdf45654 这是我的坏事。我从另一个测试文件中复制了php脚本,那里是$_GET。我确实在测试服务器中将其更改为$_POST。我有一个新的观察,将它添加到主线程
5 年多之前 回复
dongshi8359
dongshi8359 您的isset($_GET[“...”]将无法使用HTTP.Post。
5 年多之前 回复
doudouwen2763
doudouwen2763 没有防火墙。正如我所说,Android应用程序可以连接到同一个脚本没有任何问题。*Url和Php脚本添加到主帖
5 年多之前 回复
dounuo1881
dounuo1881 如果您使用防火墙,您是否已授予您的程序连接到您的服务器的权限?你能关闭防火墙,进行测试吗?
5 年多之前 回复
drslez4322
drslez4322 没有看到Url和php脚本,很难提供帮助。
5 年多之前 回复
doutongfu9484
doutongfu9484 没有帮助。得到同样的错误。
5 年多之前 回复
douyong1850
douyong1850 你有空间service_test=测试服务器尝试使用service_test=Testing%20Server。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问