资源简介
本示例使用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个文件信息
相关资源
- soapui破解+Protection-4.6.jar
- SoapUI Pro 5.1.2 破解license文件
- 论文研究 - 使用信息集的基于击键动
- ksoap2-android-assembly-3.6.2-jar-with-depende
- SoapUI Pro 4.5.1或4.5.2版本官网地址和破
- Java 接收邮件时进行身份验证
- Java 发送邮件时进行身份验证
- java 论坛系统Struts 2+Hibernate+Spring实现
- 晚餐预定系统——Web Service大作业
- ksoap2-android-assembly-2.4-jar-with-dependenc
- JSP和mysql实现用户登录身份信息的验证
- ReadyAPI-2.7.0 激活破解文件教程 (包含
- ksoap2-android-assembly-3.6.1-jar-with-depende
- android 指纹识别身份验证
评论
共有 条评论