2009-06-28 5 views

답변

12

웹 서비스에 대한 유효한 호출 만 수행하면됩니다. 시간이 초과되거나 404 오류가 발생하면 웹 서비스를 사용할 수 없습니다.

당신은이 방법을 시도 할 수
4

사용해보세요. 작동하면 사용할 수 있습니다. 그렇지 않은 경우 (또는 사용자와 서버 사이에 네트워크 연결 문제가 있음). 여기에는 마법이 없습니다.

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()); 
+0

나는 이것을 좋아한다. (고마워!).하지만 클라이언트 객체를 인스턴스화 할 때 USING 문을 추가 할 것을 제안한다. 특히 많이 사용하게 될 핑이므로 폐기 처리하는 것이 중요합니다. –

+1

예. 나는 내 대답을 적절히 업데이트 할 것이다. – lkg

1

마지막으로 나는

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; 
을 델파이 닷넷에서이 코드를 쓴

추신 : 영감을 주셔서 대단히 감사합니다.

+1

예외 트랩을 통신 기반 예외로 줄여야합니다. 통신 기반 예외 외에도 치명적인 오류가 될 수 있으므로 예외를 잡아 내고 싶지 않은 경우는 드뭅니다. –

관련 문제