c#2.0怎么用代码判断一个WebService是否正常工作
大概方法好象是发送一个WebService的url的请求,再根据得到响应的状态来判断WebService是否正常工作,假设url=http://www.baidu.com...
大概方法好象是发送一个WebService的url的请求,再根据得到响应的状态来判断WebService是否正常工作,假设url=http://www.baidu.com/server/service1.asmx
请给出具体的实现方式和代码
按照lcg1986的方法会发生异常:接口 MSXML2.IXMLHTTPRequest 的 QueryInterface 失败。
按照kadbbz的方法,我找不到new WebClient().DownloadDataAsync(string,AutoResetEvent)这个方法 展开
请给出具体的实现方式和代码
按照lcg1986的方法会发生异常:接口 MSXML2.IXMLHTTPRequest 的 QueryInterface 失败。
按照kadbbz的方法,我找不到new WebClient().DownloadDataAsync(string,AutoResetEvent)这个方法 展开
展开全部
在.net中验证WebService的Url有效并且验证服务可用:
需要用到win32下的组件,比如Microsoft XML, v5.0
测试程序具体如下:建一个项目,在你的引用中添加COM---找到Microsoft XML, v5.0
然后using MSXML2;
该组件提供一个接口MSXML2.XMLHTTP可以调用
XMLHTTP http = new XMLHTTP();//实例化
http.open("GET", url, false, null, null);
http.send(null);//打开url,向该url发送一个请求
http.status记下请求的结果状态
200表示请求成功,即该服务存在,返回其他数值在相应的服务器端有定义错误说明
给个函数例子:
/// <summary>
/// 判断webservice是否可用
/// </summary>
/// <returns>true:可用;false:不可用</returns>
public bool getWSStatus()
{
string url = "http://jerry/wscg/service.asmx";
XMLHTTP http = new XMLHTTP();
try
{
http.open("GET", url, false, null, null);
http.send(null);
int iStatus = http.status;
//如果取得的网页状态不正确, 就是不存在或没权访问
if(iStatus == 200)
return true;
else
return false;
}
catch
{
return false;
}
}
需要用到win32下的组件,比如Microsoft XML, v5.0
测试程序具体如下:建一个项目,在你的引用中添加COM---找到Microsoft XML, v5.0
然后using MSXML2;
该组件提供一个接口MSXML2.XMLHTTP可以调用
XMLHTTP http = new XMLHTTP();//实例化
http.open("GET", url, false, null, null);
http.send(null);//打开url,向该url发送一个请求
http.status记下请求的结果状态
200表示请求成功,即该服务存在,返回其他数值在相应的服务器端有定义错误说明
给个函数例子:
/// <summary>
/// 判断webservice是否可用
/// </summary>
/// <returns>true:可用;false:不可用</returns>
public bool getWSStatus()
{
string url = "http://jerry/wscg/service.asmx";
XMLHTTP http = new XMLHTTP();
try
{
http.open("GET", url, false, null, null);
http.send(null);
int iStatus = http.status;
//如果取得的网页状态不正确, 就是不存在或没权访问
if(iStatus == 200)
return true;
else
return false;
}
catch
{
return false;
}
}
展开全部
如果只是访问一个地址是否有效,建议使用System.Net.WebClient而不是复杂的MSXML
以下是异步验证的代码,同步则直接使用DownloadData,然后对他进行try catch
以下为验证方法内的代码:
System.Threading.AutoResetEvent waiter = new System.Threading.AutoResetEvent (false);
WebClient client = new WebClient();
client.DownloadDataCompleted += new DownloadDataCompletedEventHandler (DownloadDataCallback);
Byte[] pageData = client.DownloadDataAsync("http://www.baidu.com/server/service1.asmx",waiter);
waiter.WaitOne ();
以下为WebClient完成操作的回调方法:
private void DownloadDataCallback(Object sender,
DownloadDataCompletedEventArgs e
)
{
if(null != e.Error)
{
MessageBox.Show("有效");
}
else
{
MessageBox.Show("无效");
}
}
以下是异步验证的代码,同步则直接使用DownloadData,然后对他进行try catch
以下为验证方法内的代码:
System.Threading.AutoResetEvent waiter = new System.Threading.AutoResetEvent (false);
WebClient client = new WebClient();
client.DownloadDataCompleted += new DownloadDataCompletedEventHandler (DownloadDataCallback);
Byte[] pageData = client.DownloadDataAsync("http://www.baidu.com/server/service1.asmx",waiter);
waiter.WaitOne ();
以下为WebClient完成操作的回调方法:
private void DownloadDataCallback(Object sender,
DownloadDataCompletedEventArgs e
)
{
if(null != e.Error)
{
MessageBox.Show("有效");
}
else
{
MessageBox.Show("无效");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询