C# 无法将加密文本传递到.net web服务
我正在开发一个基于C# 无法将加密文本传递到.net web服务,c#,.net,web-services,encryption,des,C#,.net,Web Services,Encryption,Des,我正在开发一个基于webservice的系统,该系统有一个客户端,使用DES算法对文本进行加密 当我的客户机将加密文本发送到web服务上的web方法时,我捕获一个 ProtocolException异常,表示远程服务器返回意外响应:(400)错误请求 加密前的文本:“您好” 加密后的文本:“I%�L�*�" 如何解决此问题?由于字符串中不支持的特殊字符而发生异常。 您可以在服务中进行更改以接受流而不是字符串 服务器端代码: Boolean GetData(Stream fStream) {
webservice
的系统,该系统有一个客户端,使用DES
算法对文本进行加密
当我的客户机将加密文本发送到web服务上的web方法时,我捕获一个
ProtocolException异常,表示远程服务器返回意外响应:(400)错误请求
加密前的文本:“您好”加密后的文本:“I%�L�*�"
如何解决此问题?由于字符串中不支持的特殊字符而发生异常。 您可以在服务中进行更改以接受流而不是字符串 服务器端代码:
Boolean GetData(Stream fStream)
{
try
{
// Read the stream into a byte array
Byte[] data = new Byte[32767];
using (MemoryStream ms = new MemoryStream())
{
while(true)
{
Int32 read = stream.Read(data, 0, data.Length);
if(read <= 0)
return ms.ToArray();
ms.Write(data, 0, read);
}
}
// Copy to a string for header parsing
String content = Encoding.UTF8.GetString(data);
// do something
}
catch (Exception ex)
{
throw(ex);
}
}
Boolean-GetData(Stream-fStream)
{
尝试
{
//将流读入字节数组
字节[]数据=新字节[32767];
使用(MemoryStream ms=new MemoryStream())
{
while(true)
{
Int32 read=stream.read(数据,0,数据.长度);
如果(读取的加密结果是二进制数据。使用十六进制或base64将其表示为文本。谢谢@JonSkeet:)base64做到了。@Smmer谢谢你的回复,你能帮我提供一个示例代码片段吗?a:我应该如何将字符串转换为流。B:我应该如何更改web服务以接受流?