【问题标题】:.Net WCF 415 Missing Content Type.Net WCF 415 缺少内容类型
【发布时间】:2018-06-25 15:28:23
【问题描述】:

我遇到了一个我无法解决的问题。我发现了一些关于 SO 的相关问题,但到目前为止没有一个对我有帮助。

这是正在运行的代码:

HttpWebRequest handler = (HttpWebRequest)WebRequest.Create("someUrl");
handler.Method = "POST";

string postData = "some data";

byte[] data = Encoding.ASCII.GetBytes(postData);
handler.ContentLength = data.Length;
using (var stream = handler.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}
handler.ContentType = "application/xml; charset=utf-8";
HttpWebResponse response = (HttpWebResponse)handler.GetResponse();

端点 (url) 是一个 WCF REST 接口。当我针对测试 REST 接口运行此代码时,它工作正常。

但是,当我针对实时 REST 接口运行它时,我收到了这个错误:

远程服务器返回错误:(415) Missing Content Type。`

现在两个端点上的 REST 接口是相同的。但是,有 2 个差异可能会影响结果:

首先,实时 REST 通过 https 运行并具有

<security mode="Transport"/>

在 web.config 的 webHttpBinding 部分下。

其次,测试 REST 服务器在 Windows (.Net) 更新方面是最新的),实时 REST 服务器不是。

有人知道如何解决这个问题吗?

提前致谢!

【问题讨论】:

标签: c# .net wcf iis http-status-code-415


【解决方案1】:

好的,使用 Fiddler 找到它:当这一行时

using (var stream = handler.GetRequestStream())

正在执行连接已经建立,所以当我稍后设置内容类型时,为时已晚。

当我将这行代码几乎移到顶部时

handler.ContentType = "application/xml; charset=utf-8";

它正在工作,我可以看到正在传输的内容类型。

它没有回答为什么最初它在测试环境中工作而不是在现场工作的问题,但现在......

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 2019-03-15
    • 1970-01-01
    • 2018-03-07
    • 2019-01-27
    • 2015-08-20
    • 2017-08-05
    • 2022-07-20
    • 2021-07-30
    相关资源
    最近更新 更多