PHP 调用 C#编写的webservice

C# 服务端代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Xml;
using System.Web.Services.Protocols;
using System.Data.SqlClient;

/// <summary>
///GetCRMDB 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
// [System.Web.Script.Services.ScriptService]
public class GetCRMDB : System.Web.Services.WebService
{
    public MySoapHeader myHeader = new MySoapHeader();
    public GetCRMDB()
    {

        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 



    }



    [SoapHeader("myHeader")]
    [WebMethod(Description = "--获取客户信息 <BR>UserName : 加密的用户姓名<br>DeptID : 加密的部门编号 <Br> OfficeID : 加密的用户所属分公司  <br> CheckSum : 验证数字 ")]
    public XmlDocument GetCompanyMaster(string UserName, string DeptID, string OfficeID, string CheckSum)
    {
        XmlDocument doc = new XmlDocument();
        string UserID="";
        if (Vail(UserName, DeptID, OfficeID, CheckSum, out UserID, out doc))
        {
            return GetCompanyMaster(UserID);
        }
        else
        {
            return doc;
        }
    }
}
MySoapHeader  类文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///MySoapHeader 的摘要说明
/// </summary>
public class MySoapHeader : System.Web.Services.Protocols.SoapHeader
{
    private string userID = string.Empty;
    private string userPW = string.Empty;

    public string UserId
    {
        get { return userID; }
        set { userID = value; }
    }
    public string UserPW
    {
        get { return userPW; }
        set { userPW = value; }
    }
    public MySoapHeader()
    { }
    public MySoapHeader(string name, string password)
    {
        userID = name;
        userPW = password;
    }

    private bool IsValid(string nUserId, string nPassWord, out string nMsg)
    {
        nMsg = "";
        try
        {
            if (nUserId == "test" && nPassWord == "testtest")
            {
                return true;
            }
            else
            {
                nMsg = "对不起,你无权调用Web服务";
                return false;
            }
        }
        catch
        {
            nMsg = "---对不起,你无权调用Web服务";
            return false;
        }
    }



    public bool IsValid(out string nMsg)
    {
        
        return IsValid(userID, userPW, out nMsg);
    }
}

 

 

PHP 呼叫webservice 方法,仅供参考

<?php

$c = new SoapClient('******?wsdl');

$v = array('UserId'=>'test', 'UserPW'=>'testtest');
$headers = new SoapHeader('http://tempuri.org/', 'MySoapHeader',$v); //soaphead head 验证
$c->__setSoapHeaders(array($headers));//添加soapheader


$obj = $c->GetCompanyMaster(array('UserName'=>'****', 'DeptID'=>'*****', 'OfficeID'=>'*****', 'CheckSum'=>'****')); //呼叫webservice 具体方法
$GetCompanyMasterResult = $obj->GetCompanyMasterResult;
 if($GetCompanyMasterResult){
  var_dump($GetCompanyMasterResult);
  }else{
  print "Fail";
  }
echo "";

?>

 

转载于:https://www.cnblogs.com/sam-peng/p/3596341.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值