【发布时间】:2015-07-06 22:49:58
【问题描述】:
我有以下代码来创建一个网络服务
[WebMethod]
public string EncryptText1(string plaintext)
{
ASCIIEncoding textConverter = new ASCIIEncoding();
byte[] key = textConverter.GetBytes("2a1c907916add59edffb3a4b");
byte[] IV = textConverter.GetBytes("00000000");
byte[] clearData = Encoding.ASCII.GetBytes(plaintext);
byte[] cipherData = EncryptText(clearData, key, IV);
return Convert.ToBase64String(cipherData);
}
[WebMethod]
public byte[] EncryptText(byte[] clearData, byte[] Key, byte[] IV)
{
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform alg = tdes.CreateEncryptor(Key, IV);
CryptoStream cs = new CryptoStream(ms, alg, CryptoStreamMode.Write);
cs.Write(clearData, 0, clearData.Length);
cs.FlushFinalBlock();
cs.Close();
byte[] encryptedData = ms.ToArray();
return encryptedData;
}
我有以下代码在php中访问web服务
<?php
$enc_wsdl = "http://172.18.0.75/EncryptionWS/EncryptionWS.asmx?wsdl";
$enc_client = new SoapClient($enc_wsdl);
$finalstring = $enc_client->EncryptText1("SomeUserName");
print_r($finalstring);
?>
但我收到以下错误:
致命错误:未捕获的 SoapFault 异常:[soap:Server] 服务器是 无法处理请求。 ---> 字符串引用未设置为 字符串的实例。参数名称:s in C:\xampp\htdocs\dotnetwebservice\index.php:4 堆栈跟踪:#0 C:\xampp\htdocs\dotnetwebservice\index.php(4): SoapClient->__call('EncryptText1', Array) #1 C:\xampp\htdocs\dotnetwebservice\index.php(4): SoapClient->EncryptText1('SomeUserName') #2 {main} 抛出 C:\xampp\htdocs\dotnetwebservice\index.php 在第 4 行
【问题讨论】:
-
您使用
SoapClient类错误。请阅读手册:php.net/manual/en/soapclient.soapclient.php -
你能建议我如何使用这个,我是第一次使用这个
-
我很困惑如何使用soapclient
标签: php asp.net web-services soap webservice-client