怎样动态的访问WebService? 我现在在测试版本时用的是访问一个WebService,但是当发布正式版本时,相应的服务器IP会发生变化,请问怎么解决,急!在线等! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用WSDL 产生webservices 的代理可以动态设置 url的 请问falx2004,具体怎么实现,谢谢! 我也关心下这个问题!发布带web服务的网站要怎么发布? 开始->程序->Microsoft visual studio 2005 ->visual studio 2005 命令提示输入 wsdl + 现有的webservices地址会对应的产生一个CS文件 这个就是这个webservices的代理类你可以通过修改构造函数的方式 在实例化代理类的时候 改这个类里面的URL 用WSDL 产生webservices 的代理 可以动态设置 url的嗯,我也是用这种方式 产生的webservices的代理类是可以动态设置url的 以前写的调用webservice测试 楼主可以参考看看 public string GetBodyXML(Hashtable Body, string ServiceName, string ServiceUrl) { string soapBody; soapBody = "<soap:Body>"; soapBody += "<" + ServiceName + " xmlns='" + ServiceUrl + "'>"; foreach (DictionaryEntry de in Body) { soapBody += "<" + de.Key + ">" + de.Value + "</" + de.Key + ">"; } soapBody += "</" + ServiceName + ">"; soapBody += "</soap:Body>"; return soapBody; } private void SendSOAP(string SoapXml, string Url,string SeverSpace) { byte[] soapXML = Encoding.UTF8.GetBytes(SoapXml); HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(Url); webrequest.Method = "POST"; webrequest.ContentType = "text/xml; charset=utf-8"; webrequest.Headers.Add("SOAPAction: "+ SeverSpace ); webrequest.ContentLength = soapXML.Length; Stream requestStream = webrequest.GetRequestStream(); requestStream.Write(soapXML, 0, soapXML.Length); WebResponse responce = webrequest.GetResponse(); Stream s = responce.GetResponseStream(); StreamReader sr = new StreamReader(s); string Mess = sr.ReadToEnd(); DataSet ds = new DataSet(); byte[] byt = System.Text.Encoding.UTF8.GetBytes(Mess); MemoryStream stream = new MemoryStream(byt); ds.ReadXmlSchema("HelloWorld.xsd"); ds.ReadXml(stream); requestStream.Close(); stream.Close(); } private void button6_Click(object sender, EventArgs e) { Hashtable body = new Hashtable(); //body.Add("StartTime", "2000-10-10"); //body.Add("EndTime", "2012-10-10"); string ServiceName = "HelloWorld"; string ServiceUrl = "http://192.168.1.192:8080/webserver/"; string XML = GetSoapXml(body, ServiceName, ServiceUrl); SendSOAP(XML, "http://192.168.1.192:8080/", "http://tempuri.org/HelloWorld.xsd/"+ServiceName); } C#和Python的二次开发问题 dockpanel 有没办法得到那一边 已经有页面停靠了,并且得到是哪张页面 关于VS 怎么制作托盘? ListView.items.contain的问题 [求助]怎么样利用WMI向一个远程机器的C盘根目录COPY一个文件,谢谢 关于O/R Mapping ******************关于XML与数据库的问题************************* 多线程取数据 wpf model的属性如何不写OnPropertyChanged能让界面更新 输出文件乱码 .net做的小程序别人是不是必须装完整的.NET3.5
可以动态设置 url的
发布带web服务的网站要怎么发布?
输入 wsdl + 现有的webservices地址
会对应的产生一个CS文件 这个就是这个webservices的代理类
你可以通过修改构造函数的方式 在实例化代理类的时候 改这个类里面的URL
可以动态设置 url的嗯,我也是用这种方式
{
string soapBody;
soapBody = "<soap:Body>";
soapBody += "<" + ServiceName + " xmlns='" + ServiceUrl + "'>";
foreach (DictionaryEntry de in Body)
{
soapBody += "<" + de.Key + ">" + de.Value + "</" + de.Key + ">";
}
soapBody += "</" + ServiceName + ">";
soapBody += "</soap:Body>";
return soapBody;
}
private void SendSOAP(string SoapXml, string Url,string SeverSpace)
{
byte[] soapXML = Encoding.UTF8.GetBytes(SoapXml);
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(Url);
webrequest.Method = "POST";
webrequest.ContentType = "text/xml; charset=utf-8";
webrequest.Headers.Add("SOAPAction: "+ SeverSpace );
webrequest.ContentLength = soapXML.Length; Stream requestStream = webrequest.GetRequestStream();
requestStream.Write(soapXML, 0, soapXML.Length);
WebResponse responce = webrequest.GetResponse();
Stream s = responce.GetResponseStream();
StreamReader sr = new StreamReader(s);
string Mess = sr.ReadToEnd();
DataSet ds = new DataSet();
byte[] byt = System.Text.Encoding.UTF8.GetBytes(Mess);
MemoryStream stream = new MemoryStream(byt);
ds.ReadXmlSchema("HelloWorld.xsd");
ds.ReadXml(stream);
requestStream.Close();
stream.Close(); } private void button6_Click(object sender, EventArgs e)
{
Hashtable body = new Hashtable();
//body.Add("StartTime", "2000-10-10");
//body.Add("EndTime", "2012-10-10");
string ServiceName = "HelloWorld";
string ServiceUrl = "http://192.168.1.192:8080/webserver/";
string XML = GetSoapXml(body, ServiceName, ServiceUrl);
SendSOAP(XML, "http://192.168.1.192:8080/", "http://tempuri.org/HelloWorld.xsd/"+ServiceName);
}