使用soap协议获取webservice和使用http协议获取服务数据两者的区别
1.输入输出的形式上进行区别
使用soap协议获取webservice获取数据都是以XML的形式传入参数、输出的结果也是以XML的形式输出(古典版)
使用http协议获取服务数据是以Json的方式输入和输出(现代版)
我把两者的区别自定义为其实就是古典版(以前的老项目程序多)和现代版
2.代码示例:
使用soap协议获取webservice数据
string resquestxml = "<?xml version='1.0' encoding='GBK'?>\n\t<roots>\n" +
"\t\t<Test>\n" +
"\t\t<cs1>" + cs1 + "</cs1>\n" +
"\t\t<cs2>" + cs2 + "</cs2>\n" +
"\t\t<cs3>" + cs3 + "</cs3>\n" +
"\t\t</Test>\n" +
"\t</roots>";
string ss = _webService.queryObjectOut(cs1, cs2, cs3, resquestxml);
ss = SelectUtf8(ss);//此时将获取的数据进行utf8的转码,防止乱码
return ss;//此时ss就是获取的结果
public string SelectUtf8(string _DeStr)
{
return System.Web.HttpUtility.UrlDecode(_DeStr, Encoding.GetEncoding("utf-8"));
}
使用http协议获取服务数据
string posturl = "网络接口地址";
pictureData picData = new pictureData();
picData.shuju= 1;
picData.option = new tempEntity();
string strContent = JsonConvert.SerializeObject(picData);//将需要传入的参数转换成json格式
try
{
WebRequest webRequest = WebRequest.Create(posturl);
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.Headers.Add("ContentType", "application/json");
using (StreamWriter dataStream = new StreamWriter(webRequest.GetRequestStream()))
{
dataStream.Write(strContent);
dataStream.Close();
}
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string Message = php.ReadToEnd();
return Message ;//此时Message 就是获取的结果。
}
catch (Exception ex)
{
return ex.Message;
}