मैं डब्ल्यूसीएफ आराम सेवा में नया हूं। मुझे समस्या नहीं मिली, मेरी डब्ल्यूसीएफ आराम से सेवा क्यों 'बुरी अनुरोध' दे रही है। मैं .NET 4.0 का उपयोग करता हूं।JSON अनुरोध द्वारा fiddler से wcf restful सेवा को कैसे कॉल करें?
मेरी सेवा है:
[OperationContract(Name="Add")]
[WebInvoke(UriTemplate = "test/", Method = "POST",
ResponseFormat=WebMessageFormat.Json,
RequestFormat=WebMessageFormat.Json)]
public int Add(Number n1)
{
res = Convert.ToInt32(n1.Number1) + Convert.ToInt32(n1.Number2);
return res;
}
डाटा हैं ..
[Serializable]
public class Number
{
public int Number1 { get; set; }
public int Number2 { get; set; }
}
जब मैं Fiddler अपनी वापसी से फोन के HTTP/1.1 400 गलत अनुरोध '
मेरा फिडलर अनुरोध हेडर है:
User-Agent: Fiddler
Host: localhost:4217
Content-Type: application/json; charset=utf-8
और अनुरोध शरीर है:
{"Number1":"7","Number2":"7"}
और प्रतिक्रिया हेडर है:
HTTP/1.1 400 Bad Request
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 14 Aug 2011 18:10:21 GMT
X-AspNet-Version: 4.0.30319
Content-Length: 5450
Cache-Control: private
Content-Type: text/html
Connection: Close
लेकिन अगर मैं सी # क्लाइंट प्रोग्राम द्वारा इस सेवा को कॉल यह ठीक है।
मेरे क्लाइंट कोड है:
uri = "http://localhost:4217/Service1.svc/";
Number obj = new Number() { Number1 = 7, Number2 = 7 };
using (HttpResponseMessage response = new HttpClient().Post(uri+"test/",
HttpContentExtensions.CreateDataContract(obj)))
{
string res = response.Content.ReadAsString();
return res.ToString();
}
कृपया मेरी मदद करो ........
धन्यवाद।
"सामान्य" उपयोग डब्ल्यूसीएफ आरईएसटी ' ' व्यवहार (या 'वेबहैट्टेबायवरर', कोड के माध्यम से) का उपयोग करना है, न कि आपके नमूने में ' ' जो आपके पास है। के लिए, डिफ़ॉल्ट बॉडीस्टाइल 'बेयर' है, जिसका अर्थ है कि आप पैरामीटर नाम के साथ किसी JSON ऑब्जेक्ट में ऑब्जेक्ट को लपेटने की आवश्यकता नहीं है ( के लिए डिफ़ॉल्ट 'लपेटा हुआ है')। –
carlosfigueira
कार्लोस, स्पष्टीकरण के लिए धन्यवाद! –