返回的translist是有内容的,但是在vs内调用却返回为null,如下图:
返回的是userLocationTransform这个自定义类型,请教C#客户端这边怎么设置,怎样才能返回正常
5 个解决方案
#1
如果解决不了 请问我怎么通过vs的webservice方式获取到返回的XML 再去解析这个xml,这种是最笨的方法了 求大神指教
#2
呵呵,原因是你调用的webservice返回的response里面的根节点带前缀,其实你获得的hubian这个变量也是null,只不过因为是boolean的所以设了false为默认值。不信你让webservice返回个hubian是true的值试试。
这个东西无解。呵呵
不过如果你要手动解析的话可以实现一个Ihttpmodule,或者ashx,request.inputstream可以拿到整个soap的消息
这个东西无解。呵呵
不过如果你要手动解析的话可以实现一个Ihttpmodule,或者ashx,request.inputstream可以拿到整个soap的消息
#3
不好意思,看错了,你是客户端。
基本方法如下所示:
基本方法如下所示:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://your.webservice.com/yourendpoint.xxx");
try
{
//根据用户的输入设置请求对象的标题字段
//httpRequest.ContentType = "application/soap+xml; charset=utf-8";
httpRequest.ContentType = "text/xml; charset=utf-8";
httpRequest.Headers.Add("SOAPAction", "http://xxxx.xxxx.com.xxxx/xxxx/yyyy");
httpRequest.Method = "POST";
byte[] req_soap = BuildSoap();// 构建SOAP形式的request,BuildSoap这部分你要自己实现,方法多种多样
httpRequest.ContentLength = req_soap.GetLength(0);
Stream rs = httpRequest.GetRequestStream();
rs.Write(req_soap, 0, (int)(httpRequest.ContentLength));
rs.Close();
}
catch (Exception ex)
{
}
HttpWebResponse httpResponse;
bool err = false;
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
}
StreamReader stream = new StreamReader(httpResponse.GetResponseStream());
string x = stream.ReadToEnd();
// 至此你得到了返回的SOAP消息的字符串,当然你也可以用DOM的read方法直接读httpResponse.GetResponseStream()
#4
谢谢3L
1.请问第1和第7行的url有什么区别吗
2.对方的webservice需要传两个参数,用你说的这种方法怎么传
1.请问第1和第7行的url有什么区别吗
2.对方的webservice需要传两个参数,用你说的这种方法怎么传
#5
第一行的URL是webservice的发布地址,比如.net的话一般是xxxx.asmx结尾的。
第七行的URL是soapaction,其实不一定一定是一个url,可以是任何字符串,这个是用来标示运行webservice里的哪个方法用的,但是不是必须的,要看webservice的服务器端是如何定义的,有些必须要soapaction,有些根据soapbody下的第一个子元素的名字来匹配
参数的问题,就是要按webservice服务器发布的wsdl自己组装soap消息,也就是前面代码里面BuildSoap要实现的东西。
第七行的URL是soapaction,其实不一定一定是一个url,可以是任何字符串,这个是用来标示运行webservice里的哪个方法用的,但是不是必须的,要看webservice的服务器端是如何定义的,有些必须要soapaction,有些根据soapbody下的第一个子元素的名字来匹配
参数的问题,就是要按webservice服务器发布的wsdl自己组装soap消息,也就是前面代码里面BuildSoap要实现的东西。
#1
如果解决不了 请问我怎么通过vs的webservice方式获取到返回的XML 再去解析这个xml,这种是最笨的方法了 求大神指教
#2
呵呵,原因是你调用的webservice返回的response里面的根节点带前缀,其实你获得的hubian这个变量也是null,只不过因为是boolean的所以设了false为默认值。不信你让webservice返回个hubian是true的值试试。
这个东西无解。呵呵
不过如果你要手动解析的话可以实现一个Ihttpmodule,或者ashx,request.inputstream可以拿到整个soap的消息
这个东西无解。呵呵
不过如果你要手动解析的话可以实现一个Ihttpmodule,或者ashx,request.inputstream可以拿到整个soap的消息
#3
不好意思,看错了,你是客户端。
基本方法如下所示:
基本方法如下所示:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://your.webservice.com/yourendpoint.xxx");
try
{
//根据用户的输入设置请求对象的标题字段
//httpRequest.ContentType = "application/soap+xml; charset=utf-8";
httpRequest.ContentType = "text/xml; charset=utf-8";
httpRequest.Headers.Add("SOAPAction", "http://xxxx.xxxx.com.xxxx/xxxx/yyyy");
httpRequest.Method = "POST";
byte[] req_soap = BuildSoap();// 构建SOAP形式的request,BuildSoap这部分你要自己实现,方法多种多样
httpRequest.ContentLength = req_soap.GetLength(0);
Stream rs = httpRequest.GetRequestStream();
rs.Write(req_soap, 0, (int)(httpRequest.ContentLength));
rs.Close();
}
catch (Exception ex)
{
}
HttpWebResponse httpResponse;
bool err = false;
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
}
StreamReader stream = new StreamReader(httpResponse.GetResponseStream());
string x = stream.ReadToEnd();
// 至此你得到了返回的SOAP消息的字符串,当然你也可以用DOM的read方法直接读httpResponse.GetResponseStream()
#4
谢谢3L
1.请问第1和第7行的url有什么区别吗
2.对方的webservice需要传两个参数,用你说的这种方法怎么传
1.请问第1和第7行的url有什么区别吗
2.对方的webservice需要传两个参数,用你说的这种方法怎么传
#5
第一行的URL是webservice的发布地址,比如.net的话一般是xxxx.asmx结尾的。
第七行的URL是soapaction,其实不一定一定是一个url,可以是任何字符串,这个是用来标示运行webservice里的哪个方法用的,但是不是必须的,要看webservice的服务器端是如何定义的,有些必须要soapaction,有些根据soapbody下的第一个子元素的名字来匹配
参数的问题,就是要按webservice服务器发布的wsdl自己组装soap消息,也就是前面代码里面BuildSoap要实现的东西。
第七行的URL是soapaction,其实不一定一定是一个url,可以是任何字符串,这个是用来标示运行webservice里的哪个方法用的,但是不是必须的,要看webservice的服务器端是如何定义的,有些必须要soapaction,有些根据soapbody下的第一个子元素的名字来匹配
参数的问题,就是要按webservice服务器发布的wsdl自己组装soap消息,也就是前面代码里面BuildSoap要实现的东西。