0
我正在研究基於web service
的系統,該系統具有使用DES
算法加密文本的客戶端。無法將加密文本傳遞給.net Web服務
當我的客戶端發送加密的文本對Web服務的Web方法,我搭上了
的ProtocolException異常說遠程服務器返回了意外的響應:(400)錯誤的請求。
文本加密前: 「你好」 加密後
文字: 「I%L *」
我應該怎麼做才能解決這個問題?
我正在研究基於web service
的系統,該系統具有使用DES
算法加密文本的客戶端。無法將加密文本傳遞給.net Web服務
當我的客戶端發送加密的文本對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);
}
}
@Smmer謝謝你的回覆,你能幫我一個示例代碼片段嗎?答:我應該如何將我的字符串轉換爲流。 B:我應該如何改變我的網絡服務以接受流? –
的加密結果是*的二進制數據*。使用十六進制或base64將其表示爲文本。 –
謝謝@JonSkeet :) base64做到了。 –