繁体   English   中英

确定Web服务何时可用

[英]Determine when a web service is available

我如何确定何时可以使用Web服务(在线)? 在Delphi或C#中?

只需对Web服务进行有效调用即可。 如果超时,或者您收到404错误,则Web服务不可用。

你可以尝试这种方法..

    public bool IsAddressAvailable(string address)
    {
        try
        {
            using(System.Net.WebClient client = new WebClient())
            {
                client.DownloadData(address);
                return true;
            }
        }
        catch
        {
            return false;
        }
    }

......并称之为......

MessageBox.Show(IsAddressAvailable("http://localhost/my.webservices/mywebservice.asmx").ToString());

尝试使用它。 如果它工作,那么它是可用的。 如果没有,则不是(或者您和服务器之间存在网络连接问题)。 这里没有魔力。

最后我在Delphi .Net中编写了这段代码

function WebService_OnLine(UrlWebService:String): Boolean;
Var
urlCheck  : uri;
request   : WebRequest;
response  : WebResponse;
begin
MemoLogWebService.Lines.Add('Testing WebService');
urlCheck    := Uri.Create(UrlWebService);
request     := WebRequest.CreateDefault(urlCheck);
request.Timeout := 20000;
    try
         response :=request.GetResponse();
         MemoLogWebService.Lines.Add(response.Headers.ToString);
         Result:=True;
    except
      on E : Exception do
      Begin
         MemoLogWebService.Lines.Add(E.Message);
         Result:=False;
      End;
    end;
End;

PS:非常感谢你给我灵感。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM