如何确定何时可以使用网络服务(在线)?在Delphi或C#中?
答案 0 :(得分:12)
只需对Web服务进行有效调用即可。如果超时,或者您收到404错误,则Web服务不可用。
答案 1 :(得分:5)
你可以尝试这种方法..
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());
答案 2 :(得分:4)
尝试使用它。如果它工作,那么它是可用的。如果没有,则不是(或者您和服务器之间存在网络连接问题)。这里没有魔力。
答案 3 :(得分:1)
最后我在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;
P.S:非常感谢你给我灵感。