我正在使用WCF Restservice来验证用户身份。我有一个POST方法,使用jquery工作正常但在Fiddler测试上失败。我得到415不支持的媒体类型。
这是我的代码
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "Login", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public string Login(string userName, string password)
{
string valid;
// Log in user
int authenticatedId = AuthenticateManager.Authenticate(userName, password);
if (authenticatedId != -1)
{
valid = "Welcome " + userName + "!";
}
else
{
valid = "Login failed!";
}
return valid;
}
这就是我在Fiddler身上传递的内容
[{ "userName":"dusshyi",
"password":"subram1" }]
这就是小提琴手的生成
<HTML><HEAD><STYLE type="text/css">#content{ FONT-SIZE: 0.7em; PADDING-BOTTOM: 2em; MARGIN-LEFT: 30px}BODY{MARGIN-TOP: 0px; MARGIN-LEFT: 0px; COLOR: #000000; FONT-FAMILY: Verdana; BACKGROUND-COLOR: white}P{MARGIN-TOP: 0px; MARGIN-BOTTOM: 12px; COLOR: #000000; FONT-FAMILY: Verdana}PRE{BORDER-RIGHT: #f0f0e0 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #f0f0e0 1px solid; MARGIN-TOP: -5px; PADDING-LEFT: 5px; FONT-SIZE: 1.2em; PADDING-BOTTOM: 5px; BORDER-LEFT: #f0f0e0 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #f0f0e0 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e5e5cc}.heading1{MARGIN-TOP: 0px; PADDING-LEFT: 15px; FONT-WEIGHT: normal; FONT-SIZE: 26px; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 3px; MARGIN-LEFT: -30px; WIDTH: 100%; COLOR: #ffffff; PADDING-TOP: 10px; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #003366}.intro{MARGIN-LEFT: -15px}</STYLE>
<TITLE>Service</TITLE></HEAD><BODY>
<DIV id="content">
<P class="heading1">Service</P>
<BR/>
<P class="intro">Endpoint not found.</P>
</DIV>
</BODY></HTML>
请帮忙!
答案 0 :(得分:13)
您是否在Fiddler的请求正文编辑器中将请求的内容类型设置为application/json
?
答案 1 :(得分:3)
今天早上我遇到了同样的问题...
为我修复的是单击“Composer”选项卡,然后将以下内容添加到“请求标题”部分:
Content-Type: application/x-www-form-urlencoded
没有这一行,我注意到日志显示它试图用Content-Type为“text / html”调用我的REST服务,并且不会调用服务。
如果添加以下行,甚至会发生:
Content-Type: application/json
但是,在添加“ Content-Type:application / x-www-form-urlencoded ”这一行之后,Fiddler现在会调用内容类型为“ application / json”的服务“,并且正确调用了Web服务。奇怪...
我已经创建了一个完整的创建JSON WCF Web服务,并使用Fiddler对其进行测试,如下所示:
http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm
答案 2 :(得分:1)
Fiddler Web Debugger:Composer部分;设置
Parsed
POST,../Service.svc/Login,HTTP/1.1
Request Header:
User-Agent: Fiddler
Content-Type: application/json;charset=UTF-8
Host: localhost:15021
Content-Length: 43
Request Body:
{"username":"ABC","password":"pwd"}
然后执行