目前WebService中在调用DefaultWsdlHelpGenerator.apsx时url地址会变成/test.asmx?op=add,那在固定调用地址/test.asmx?op= add(等号后添加了空格)时会显示“在服务 test中找不到方法“ add””。该如何对空格进行处理时在调用固定地址时重定向到无空格的地址
为什么要加上空格呢?如果真的有空格作为参数,可以加上%20代替
为了解决这个问题,你可以尝试将URL中的空格替换成%20,这是一种在URL中表示空格的编码方式。例如,将/test.asmx?op= add替换为/test.asmx?op=%20add。
如果你需要在固定调用地址时自动将空格替换成%20,你可以使用Web服务器或Web框架的重定向功能来实现。例如,在ASP.NET中,你可以在Global.asax文件的Application_BeginRequest事件中添加以下代码:
protected void Application_BeginRequest(object sender, EventArgs e)
{
string rawUrl = HttpContext.Current.Request.RawUrl;
if (rawUrl.Contains("/test.asmx?op= "))
{
string newUrl = rawUrl.Replace("/test.asmx?op= ", "/test.asmx?op=%20add");
HttpContext.Current.Response.Redirect(newUrl);
}
}
这将拦截所有请求,并检查URL是否包含/test.asmx?op= 。如果包含,它将使用String.Replace方法将其替换为/test.asmx?op=%20add,然后将请求重定向到新的URL。
不知道你这个问题是否已经解决, 如果还没有解决的话:
局域网http://192.168.1.30/WebServiceData.asmx打开如下图
上图Web引用名为WebReference笔者新建的Web文件夹名为WebReferences如上图所示