1

我正在使用 IIS 7.5 和 .NET 4.5 开发 WCF REST Web 服务。

接口文件有这个声明:

[OperationContract(Action = "PutDataFile", IsOneWay = true)]
[WebInvoke(Method = "POST", UriTemplate = "file")]
void PutDataFile(Stream fileContents);

代码是这样的:

public void PutDataFile(Stream fileContents)

当我从客户端执行 Multipart POST 时,流 fileContents 是这样的:

------------------------------b64bd2de2e40
Content-Disposition: form-data; name="UploadTest.txt"; filename="UploadTest.txt"
Content-Type: application/octet-stream

...

------------------------------b64bd2de2e40--

但是,如果在服务器端,我这样做:

String contentType1 = WebOperationContext.Current.IncomingRequest.ContentType;
String contentType2 = WebOperationContext.Current.IncomingRequest.Headers[HttpResponseHeader.ContentType];
WebHeaderCollection headers = WebOperationContext.Current.IncomingRequest.Headers;

所有这些变量都是空的。我查看了使用 WireShark 的流量,并且 HTTP 请求标头在传输中,特别是 Content-Type 标头。为什么这些标头变量为空?提前致谢!

4

0 回答 0