• 大小: 76KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Java
  • 标签: SOAP  身份验证  

资源简介

本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.ServiceModel.Description;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace testwebservice
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        
        //ServiceReference1.WebService1SoapClient webClient = new ServiceReference1.WebService1SoapClient();

        protected void Page_Load(object sender EventArgs e)
        {

        }

        protected void login_Click(object sender EventArgs e)
        {
            /*本页面一共三个服务器控件:两个TextBox用于接收用户名密码,一个Button触发点击事件
             */


            string uname = this.username.Text;//获取页面上的用户名
            string pwd = this.password.Text;  //获取密码

            //按照前面描述的SOAP结构,构造SOAP信息
            string soap = “l version=\“1.0\“ encoding=\“utf-8\“?>“ +
                          “lns:xsi=\“http://www.w3.org/2001/xmlSchema-instance\“ xmlns:xsd=\“http://www.w3.org/2001/xmlSchema\“ xmlns:soap=\“http://schemas.xmlsoap.org/soap/envelope/\“>“ +
                              ““ +
                                  “lns=\“http://tempuri.org/\“>“ +
                                      ““+uname+““ +
                                      ““+pwd+““ +
                                  ““ +
                              “
“ +
                          ““;

            //将SOAP字符串信息转换成Byte数组,用于后面的流传输
            byte[] bytData = Encoding.UTF8.GetBytes(soap.ToString());

            //创建一个HttpWebRequest实例,地址http://localhost:7887/WebService1.asmx是我发布到本地IIS上的接口
            HttpWebRequest request = System.Net.WebRequest.Create(new Uri(“http://localhost:7887/WebService1.asmx“)) as HttpWebRequest;
            //按照SOAP结构中描述的给各个属性赋值
            request.Method = “POST“;//POST方式传输
            request.Host = “localhost“;//主机名或IP地址
            request.ContentType = “text/xml; charset=utf-8“;//传输内容类型及编码格式
            request.ContentLength = bytData.Length;//传输内容长度

            //注意这里的SOAPAction,看它的value值,是指向了默认命名空间下的LoginAction方法
            //通常成熟的接口中都有自定义的SOAP节点(我认为),来告诉服务我要调用那个方法,所以在这种情况下我们把这里的SOAPAction的value值置成空
            //(如果你不明白的话,请忽略上面那句话,总之你要知道SOAPAction就是告诉服务我们要调用哪个接口方法)
            request.Headers.Add(“SOAPAction“ “http://tempuri.org/LoginAction“);
            
            //注意!!这里就是身份验证!!
            request.Credentials = MyCred();
            request.Timeout = 100000;//设置超时时间

            //用GetRequestStream()方法来获取一个流,它发出的请求将数据发送到Internet资源供给接口
            Stream newStream = request.GetRequestStream();
            //将数据写入该流
            newStream.Write(bytData 0 bytData.Length);//写入参数
            newStream.Close();

            //服务响应
            HttpWebResponse res;
            try
            {
                //获取一个响应
                res = (HttpWe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-08 11:51  testwebservice\
     目录           0  2017-09-08 18:02  testwebservice\testwebservice\
     文件        1011  2017-09-08 11:51  testwebservice\testwebservice.sln
     文件       37376  2017-09-09 08:43  testwebservice\testwebservice.v12.suo
     目录           0  2017-09-08 13:38  testwebservice\testwebservice\bin\
     文件       16384  2017-09-08 13:38  testwebservice\testwebservice\bin\testwebservice.dll
     文件        1827  2017-09-08 13:38  testwebservice\testwebservice\bin\testwebservice.dll.config
     文件       38400  2017-09-08 13:38  testwebservice\testwebservice\bin\testwebservice.pdb
     目录           0  2017-09-08 11:51  testwebservice\testwebservice\obj\
     目录           0  2017-09-08 13:38  testwebservice\testwebservice\obj\Debug\
     文件       10765  2017-09-09 08:43  testwebservice\testwebservice\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件           0  2017-09-08 11:51  testwebservice\testwebservice\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
     文件           0  2017-09-08 11:51  testwebservice\testwebservice\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
     文件           0  2017-09-08 11:51  testwebservice\testwebservice\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
     目录           0  2017-09-08 18:02  testwebservice\testwebservice\obj\Debug\TempPE\
     文件       23040  2017-09-08 18:02  testwebservice\testwebservice\obj\Debug\TempPE\Service References.ServiceReference1.Reference.cs.dll
     文件         424  2017-09-08 13:38  testwebservice\testwebservice\obj\Debug\testwebservice.csproj.FileListAbsolute.txt
     文件       16384  2017-09-08 13:38  testwebservice\testwebservice\obj\Debug\testwebservice.dll
     文件       38400  2017-09-08 13:38  testwebservice\testwebservice\obj\Debug\testwebservice.pdb
     目录           0  2017-09-08 18:02  testwebservice\testwebservice\Properties\
     文件        1321  2017-09-08 11:51  testwebservice\testwebservice\Properties\AssemblyInfo.cs
     文件        2212  2017-09-08 18:02  testwebservice\testwebservice\Properties\Settings.Designer.cs
     文件         704  2017-09-08 18:02  testwebservice\testwebservice\Properties\Settings.settings
     目录           0  2017-09-08 15:14  testwebservice\testwebservice\Service References\
     目录           0  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\
     文件        1414  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\configuration.svcinfo
     文件       19734  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\configuration91.svcinfo
     文件       74537  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\Reference.cs
     文件        1803  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\Reference.svcmap
     文件         678  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\testwebservice.ServiceReference1.AutoQueryActionResponse.datasource
     文件         696  2017-09-08 15:14  testwebservice\testwebservice\Service References\ServiceReference1\testwebservice.ServiceReference1.GetDataDetailedActionLugResponse.datasource
............此处省略20个文件信息

评论

共有 条评论