这不是我强大的主题,所以如果我说一些荒谬的话,我会提前道歉。
我使用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();
我需要在这里做些什么来改变它?
答案 0 :(得分:0)
以下是我发现here的解决方案。我需要添加以下行:
req.ProtocolVersion = System.Net.HttpVersion.Version10;
如果没有这个,在获取请求流并且从未发送内容时只发生超时,只有标题。