我试图做的是,似乎简单:通过请求机构派出一些POX,拥有WCF服务程序,并退回了201个地位法。 在我的服务合同中,我确定了以下方法:
[WebInvoke(Method = "PUT", UriTemplate = "/content/add", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml, RequestFormat=WebMessageFormat.Xml)]
[OperationContract]
Stream AddContent(Stream input);
这里的斜体是 t的;我可以很容易地用POST取代PUT,得出同样的结果。 上述方法的实施如下:
public Stream AddContent(Stream input)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Created;
}
由于这种方法的实际效果不大,我忽略了所有程序法。 为了测试这一功能,我向Fiddler提出以下要求:
User-Agent: Fiddler
Host: myhost.com
Content-Length: 771
Content-Type: text/xml && application/xml; charset: utf8
<xmlDataGoesHere></xmlDataGoesHere>
我知道,Type的供给价值是不正确的,我刚刚利用这一价值来说明我所尝试的内容——Type。 如果我点击菲德勒的紧急情况,我的服务是400份巴德尔要求。 值得注意的是,我的服务方法实际上并没有在这种秘密中受到打击,而这一请求甚至在到达之前就已经消失。 因此,经过大量阅读和删除过程之后,我改变了内容提要:
Content-Type: application/x-www-form-urlencoded
如果我执行菲德勒要求,则从我的服务中恢复的《地位法》即为201项。 难道我不知道我为什么会把内容提要定在什么东西,但URLEncoded? 我曾尝试在服务合同中打碎机和要求购物财产,但结果没有影响。 谁能说明为什么发生这种情况?