none
判断WEBservice地址是否存在 RRS feed

答案

  •  /// <summary>
            /// 测试服务地址是否可用
            /// </summary>
            /// <param name="str"></param>
            public void getWSStatus(string str)
            {
                string url = str;
                XMLHTTP http = new XMLHTTP();
                try
                {
                http.open("GET", url, false, null, null);
                 http.send(null);
                int iStatus = http.status;
                //如果取得的网页状态不正确,   就是不存在或没权访问  
                if (iStatus == 200)
                {
                    MessageBox.Show("该地址可用!");
                    return ;
                }
                else
                {
                    MessageBox.Show("该地址不可用!");
                    return ;
                }
                }
                catch
                {
                    MessageBox.Show("该地址不可用!");
                    return ;
                }
            }

    我找到了一个方法,挺好的
    努力+方法=成功
    2009年8月27日 6:00

全部回复

  • 在 WebService 写一个方法返回一个值,客户调用看能不能正常获取这个值。调用现有方法也可以。
    知识改变命运,奋斗成就人生!
    2009年8月26日 7:00
    版主
  • 你好,你的程序是否使用代理类来访问WebService,如果不存在,返回对象为Null。
    jon.valett@gmail.com
    2009年8月26日 7:02
    版主
  • XXY的方法挺好的,但是有没有不用在WEBSERVICE里面写方法,直接判断这个地址是否存在或者可用


    努力+方法=成功
    2009年8月26日 7:03
  • 俊才兄,能不能说详细些
    努力+方法=成功
    2009年8月26日 7:05
  • 1. 直接调用刚才不通或服务器当机会报错
    2. 尝试使用 HttpWebRequest 访问这个地址,看能不能获取到值

    知识改变命运,奋斗成就人生!
    2009年8月26日 7:11
    版主
  • 利用HttpRequest怎么判断,能不能给点方法
    努力+方法=成功
    2009年8月26日 7:26
  • 利用 HttpWebRequest.GetResponse() 后检查其 StatusCode,不大于 400 则可判断此 URL 服务有效。
    Mark Zhou
    2009年8月26日 7:53
  • 你好!
         通过HttpWebRequest来访问页面,通过WebException异常来判断是否能访问成功:
    try {
       // Create a web request for an invalid site. Substitute the "invalid site" strong in the Create call with a invalid name.
         HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("invalid site");
    
        // Get the associated response for the above request.
         HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
        myHttpWebResponse.Close();
    }
    catch(WebException e) {
        Console.WriteLine("This program is expected to throw WebException on successful run."+
                            "\n\nException Message :" + e.Message);
        if(e.Status == WebExceptionStatus.ProtocolError) {
            Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
            Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
        }
    }
    catch(Exception e) {
        Console.WriteLine(e.Message);
    }

    周雪峰
    2009年8月26日 8:20
    版主
  • 俊才兄,能不能说详细些
    努力+方法=成功
    你好,你在程序开发的时候就已经知道这个WebService,你把这个WebService添加引用到程序中,同时在添加的时候产生一个代理类,如果这个代理类无法实例化,则返回一个Null对象。如果你的WebService是在运行时确定的,那么使用 HttpWebRequest 会比较好的,先去当作一个Http请求数据,看是否有数据,如果没有数据,则放弃。示例雪峰已经提供,我就不重复了。

    jon.valett@gmail.com
    2009年8月26日 9:22
    版主
  •  /// <summary>
            /// 测试服务地址是否可用
            /// </summary>
            /// <param name="str"></param>
            public void getWSStatus(string str)
            {
                string url = str;
                XMLHTTP http = new XMLHTTP();
                try
                {
                http.open("GET", url, false, null, null);
                 http.send(null);
                int iStatus = http.status;
                //如果取得的网页状态不正确,   就是不存在或没权访问  
                if (iStatus == 200)
                {
                    MessageBox.Show("该地址可用!");
                    return ;
                }
                else
                {
                    MessageBox.Show("该地址不可用!");
                    return ;
                }
                }
                catch
                {
                    MessageBox.Show("该地址不可用!");
                    return ;
                }
            }

    我找到了一个方法,挺好的
    努力+方法=成功
    2009年8月27日 6:00