
用rest形式从客户端调用webservice
想在客户端根据画面输入的值,做成xml,通过rest的形式,也就是说参数只有url和做成的xml,去调用webservice里的方法,取得数据并返回xml格式的文件。小弟...
想在客户端根据画面输入的值,做成xml,通过rest的形式,也就是说参数只有url和做成的xml,去调用webservice里的方法,取得数据并返回xml格式的文件。
小弟刚接触webservice,请大家指教客户端和webservice端该如何写?
最好能写个小例子,小弟用的是vb.net,该如何实现。谢谢
要get的吧。 展开
小弟刚接触webservice,请大家指教客户端和webservice端该如何写?
最好能写个小例子,小弟用的是vb.net,该如何实现。谢谢
要get的吧。 展开
3个回答
展开全部
#region Service
/// <summary>
/// Get Serveic
/// </summary>
/// <param name="endPoint">URL</param>
/// <param name="paramters">paramter</param>
protected string Service(string endPoint, Dictionary<string, string> paramters)
{
//格式化参数
string populatedEndPoint = CreateFormattedPostRequest(paramters);
//创建HttpWebRequest对象
HttpWebRequest req = CreateWebRequest(endPoint + populatedEndPoint, StringUtil.GetStringByte(populatedEndPoint).Length);
//取得返回值
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Stream stream = resp.GetResponseStream();
string contents = string.Empty;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
contents = reader.ReadToEnd();
}
resp.Close();
stream.Close();
stream.Dispose();
req = null;
//取得内容Substring方法使用
contents = StringUtil.GetResponseBodyString(HttpUtility.UrlDecode(contents));
return contents;
}
#endregion
#region CreateFormattedPostRequest
/// <summary>
///
/// </summary>
/// <param name="values"></param>
/// <returns></returns>
private string CreateFormattedPostRequest(Dictionary<string,string> values)
{
var paramterBuilder = new StringBuilder();
var counter = 0;
foreach (var value in values)
{
//paramterBuilder.AppendFormat("{0}={1}", value.Key, HttpUtility.UrlEncode(value.Value, Encoding.UTF8));
paramterBuilder.AppendFormat("{0}", value.Value);
if (counter != values.Count - 1)
{
paramterBuilder.Append("&");
}
counter++;
}
return paramterBuilder.ToString();
}
#endregion
/// <summary>
/// Get Serveic
/// </summary>
/// <param name="endPoint">URL</param>
/// <param name="paramters">paramter</param>
protected string Service(string endPoint, Dictionary<string, string> paramters)
{
//格式化参数
string populatedEndPoint = CreateFormattedPostRequest(paramters);
//创建HttpWebRequest对象
HttpWebRequest req = CreateWebRequest(endPoint + populatedEndPoint, StringUtil.GetStringByte(populatedEndPoint).Length);
//取得返回值
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Stream stream = resp.GetResponseStream();
string contents = string.Empty;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
contents = reader.ReadToEnd();
}
resp.Close();
stream.Close();
stream.Dispose();
req = null;
//取得内容Substring方法使用
contents = StringUtil.GetResponseBodyString(HttpUtility.UrlDecode(contents));
return contents;
}
#endregion
#region CreateFormattedPostRequest
/// <summary>
///
/// </summary>
/// <param name="values"></param>
/// <returns></returns>
private string CreateFormattedPostRequest(Dictionary<string,string> values)
{
var paramterBuilder = new StringBuilder();
var counter = 0;
foreach (var value in values)
{
//paramterBuilder.AppendFormat("{0}={1}", value.Key, HttpUtility.UrlEncode(value.Value, Encoding.UTF8));
paramterBuilder.AppendFormat("{0}", value.Value);
if (counter != values.Count - 1)
{
paramterBuilder.Append("&");
}
counter++;
}
return paramterBuilder.ToString();
}
#endregion
展开全部
1,MyEclipse关联tomcat 在MyEclipse里点Run/Stop/Restart MyEclipse Servers然后配置你的Tomcat路径
2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署,
3,启动你的tomcat服务器
4,搞定
,MyEclipse关联tomcat 在MyEclipse里点Run/Stop/Restart MyEclipse Servers然后配置你的Tomcat路径
2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署,
3,启动你的tomcat服务器
4,搞定
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署,
3,启动你的tomcat服务器
4,搞定
,MyEclipse关联tomcat 在MyEclipse里点Run/Stop/Restart MyEclipse Servers然后配置你的Tomcat路径
2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署,
3,启动你的tomcat服务器
4,搞定
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样的话应该就是命名空间的问题了。
解决这样的问题,首先得获取到服务端的描述文件wsdl,有了这个wsdl文件,可以使用xmlspy这样的工具来实现客户端请求报文的模拟组装,对比xmlspy生成的报文,核实你自己的报文是否正确。
Webservice开发一定要有wsdl,有了这个描述文件,开发客户端、服务端都是分分钟的事情,myEclipse都可以自动完成相应的框架布局开发。
如有问题可以直接联系。
解决这样的问题,首先得获取到服务端的描述文件wsdl,有了这个wsdl文件,可以使用xmlspy这样的工具来实现客户端请求报文的模拟组装,对比xmlspy生成的报文,核实你自己的报文是否正确。
Webservice开发一定要有wsdl,有了这个描述文件,开发客户端、服务端都是分分钟的事情,myEclipse都可以自动完成相应的框架布局开发。
如有问题可以直接联系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询