将HTTP请求更改为HTTPS,消息内容似乎丢失了

时间:2014-03-03 18:33:40

标签: c# http https

这不是我强大的主题,所以如果我说一些荒谬的话,我会提前道歉。

我使用Mule开发了一个HTTP服务。当我直接连接到服务并使用我用C#编写的测试工具发送数据时,我的功能非常完美。

作为测试的最后一部分,我需要将其发送到HTTPS URL,该URL应该“解密”邮件并将其转发给我的服务。当我向HTTPS URL发送消息时,它会转发到我的服务,但消息内容显示为空,因此不会被处理。我知道我可能不得不在我的测试工具中添加一些“加密”,但我一直在研究如何做到这一点,我找到的任何东西都没有回答我的问题。

以下是我用于简单HTTP请求的代码示例:

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(ConfigurationManager.AppSettings["HttpDestination"].ToString());

        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = data.Length;

        using (Stream strm = req.GetRequestStream())
        {
            strm.Write(data, 0, data.Length);
        }

        HttpWebResponse response = (HttpWebResponse)req.GetResponse();

我需要在这里做些什么来改变它?

1 个答案:

答案 0 :(得分:0)

以下是我发现here的解决方案。我需要添加以下行:

req.ProtocolVersion = System.Net.HttpVersion.Version10;

如果没有这个,在获取请求流并且从未发送内容时只发生超时,只有标题。