2011-09-01 6 views
6

में विफल रहता है मैं उपयोगकर्ता प्रमाणीकृत करने के लिए डब्ल्यूसीएफ Restservice का उपयोग कर रहा हूँ। मेरे पास एक POST विधि है और jquery का उपयोग करके ठीक काम करता है लेकिन फिडलर परीक्षण पर विफल रहता है। मुझे 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; 
    } 

है यह है कि मैं क्या फ़िडलर शरीर में गुजर रहा हूँ

[{ "userName":"dusshyi", 
    "password":"subram1" }] 

यह है क्या Fiddler पैदा

<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

आप पोस्ट कर सकते हैं पूर्ण अनुरोध Fiddler पैदा कर रहा है और पूर्ण प्रतिक्रिया? – scmccart

+0

मैंने अपना प्रश्न अपडेट किया – Hardcode

उत्तर

13

क्या आपने फिडलर के अनुरोध निकाय संपादक में application/json पर अनुरोध का सामग्री प्रकार सेट किया है?

enter image description here

+0

मुझे 404 त्रुटि मिली नहीं है! – Hardcode

+1

मैं इसे उत्तर के रूप में चिह्नित करूंगा! मैं बस यूआरएल से आगे स्लैश हटा दिया और काम किया। पूर्व। http://www.example.com/Login – Hardcode

+0

मैंने ऐसा किया और यह अभी भी मेरे लिए काम नहीं किया – PositiveGuy

3

मैं एक ही समस्या आज सुबह ...

इसमें मेरे लिए क्या तय "संगीतकार" टैब पर क्लिक करने के लिए है, तो "अनुरोध हेडर" खंड के लिए निम्न जोड़ने था:

Content-Type: application/x-www-form-urlencoded 

इस लाइन के बिना, मैं उल्लेख किया लॉग यह "text/html" का एक सामग्री प्रकार के साथ अपने बाकी सेवा कॉल करने के लिए प्रयास कर रहा था पता चला है, और सेवा बुलाया नहीं होगा।

यह भी अगर मैं लाइन जोड़ा होगा:

Content-Type: application/json 

हालांकि, लाइन को जोड़ने के बाद "सामग्री प्रकार: आवेदन/x-www फार्म-urlencoded", Fiddler अब होगा "एप्लिकेशन/जेसन" के सामग्री प्रकार के साथ सेवा को कॉल करें, और वेब सेवा को सही ढंग से बुलाया गया था। अजीब ...

मैं एक JSON WCF वेब सेवा बनाने, और फ़िडलर साथ यह परीक्षण, निम्न पृष्ठ पर की एक पूरी walkthough बना लिया है:

http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm

+0

यह मेरे लिए भी हल हो गया। इसके बिना, मैं अपने नियंत्रक में मेरे पैरामीटर के रूप में शून्य हो गया। –

+0

मैं इसे वापस लेता हूं, अब मुझे एक डिफ़ॉल्ट (MyDataType) शून्य के बजाय पैरामीटर के रूप में मिलता है। –

1

फ़िडलर वेब डीबगर: संगीतकार अनुभाग; सेटिंग्स

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"} 

और उसके बाद निष्पादित

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^