这是我用来让它工作的!
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
string responseFromServerEnc = string.Empty;
byte[] data = null;
if (HttpStatusCode.OK == response.StatusCode)
{
MemoryStream memoryStream = new MemoryStream(0x10000);
using (Stream responseStream = request.GetResponse().GetResponseStream())
{
byte[] buffer = new byte[0x1000];
int bytes;
while ((bytes = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
memoryStream.Write(buffer, 0, bytes);
}
data = memoryStream.ToArray();
}
response.Close();
}
const string pubKey = "-----BEGIN PUBLIC KEY-----\n key from .pem file \n-----END PUBLIC KEY-----";
PemReader pem = new PemReader(new StringReader(pubKey));
RsaKeyParameters bcp = (RsaKeyParameters)pem.ReadObject();
string responseFromServer = Encoding.UTF8.GetString(Decrypt(data,bcp));
responseFromServerEnc 是加密的消息, responseFromServer 被正确解密。