Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用HTTPWebRequest在web服务上调用web方法?_.net_Web Services - Fatal编程技术网

.net 如何使用HTTPWebRequest在web服务上调用web方法?

.net 如何使用HTTPWebRequest在web服务上调用web方法?,.net,web-services,.net,Web Services,当使用HTTPWebRequest对象调用web服务并提供wsdl参数时,我得到了描述页面ok Dim req As Net.HttpWebRequest Dim resp As Net.HttpWebResponse Dim sr As IO.StreamReader Dim text As String req = Net.WebRequest.Create("http://www.mysite.com/DS.asmx?wsdl") ' works ' resp = req.GetResp

当使用HTTPWebRequest对象调用web服务并提供wsdl参数时,我得到了描述页面ok

Dim req As Net.HttpWebRequest
Dim resp As Net.HttpWebResponse
Dim sr As IO.StreamReader
Dim text As String

req = Net.WebRequest.Create("http://www.mysite.com/DS.asmx?wsdl") ' works '
resp = req.GetResponse
sr = New IO.StreamReader(resp.GetResponseStream)
text = sr.ReadToEnd
但是,当我尝试使用显示为soapAction的引用调用其中一个方法时,我发现(404)找不到

req = Net.WebRequest.Create("http://mysite.com/DS/StaffList") ' fails '
在调用方法的方式上是否存在我所缺少的差异?我是否误解了地址的结构


注意:如果我在VisualStudio项目中设置了一个标准的WebReference并调用WebService对象上的方法,那么该服务就可以正常工作,因此该服务本身是可用的并且可以工作

为了调用soapweb服务,您需要发布一个。这就是使用
WebReference
生成的类在幕后所做的。除非有令人信服的理由,否则永远不要使用底层类(如HttpWebRequest)调用SOAP web服务,而是使用
Add WebReference
从WSDL生成代理


看一看。还请注意,经典的ASMX web服务现在被认为是一种不推荐使用的技术,应该被替换为。

您正在尝试一种预
WCF
web服务。 如果选择迁移到
WCF
服务,则可以将该服务映射到

(表示性状态转移)用于(除其他选项外)描述URL结构中的函数调用,而无需SOAP等其他内容