जैसा कि नीचे दिखाया गया उदाहरण कोड है, मैं http पर कॉल करके गेट विधि को एक्सेस करने का प्रयास कर रहा हूं: //लोकलहोस्ट:51292/API/MyWebAPI/GetData/?Name=जॉन तब मुझे यह कहते हुए एक त्रुटि प्राप्त होती है कि "अनुरोध में एक निकाय निकाय है लेकिन कोई सामग्री-प्रकार शीर्षलेख नहीं है। अनुमानित मीडिया प्रकार इस संसाधन के लिए 'एप्लिकेशन/ऑक्टेट-स्ट्रीम' समर्थित नहीं है।"

public class MyData
{
    int ID { get; set; }
}
public class MyDataDTO : MyData
{
    string Name { get; set; }
}

public class MyWebAPIController : ApiController
{
    [AllowAnonymous]
    [HttpGet]
    public IHttpActionResult GetData(MyDataDTO publicInfo)
    {
        
        return Ok(publicInfo);
    }
}

मुझे इस बारे में कोई उचित कारण नहीं मिला कि इसे सामग्री प्रकार की आवश्यकता क्यों है, शायद इसका एपीआई नियंत्रक, या रूटिंग से कुछ लेना-देना है? मेरा रूटिंग नीचे दिखाया गया है:

    HttpConfiguration config = new HttpConfiguration();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "API/{controller}/{action}"
    );
    app.UseWebApi(config);
-2
DA_VDCT 16 जुलाई 2020, 15:41
1
I am trying to access the get method by visiting http://localhost:51292/API/MyWebAPI/GetData/?Name=John आपके वेब ब्राउज़र में? डाकिया में? कुछ और?
 – 
mjwills
16 जुलाई 2020, 15:45
मेरे वेब ब्राउज़र में।
 – 
DA_VDCT
16 जुलाई 2020, 15:50
हो सकता है कि आप इनपुट फॉर्मेटर जोड़ने से चूक गए हों? समान विषय
 – 
johnmoarr
16 जुलाई 2020, 15:51
1
कृपया अपने वेब ब्राउज़र के देव उपकरण से अनुरोध और प्रतिक्रिया शीर्षलेख दिखाएं।
 – 
mjwills
16 जुलाई 2020, 15:52
अंकित मूल्य पर त्रुटि लेते हुए, एएसपीनेट चाहता है कि आप एक सामग्री प्रकार शीर्षलेख सेट करें ताकि यह अनुरोध निकाय को समझ सके - अनुचित नहीं, और मुझे नहीं पता कि "क्यों" पूछने से कुछ भी हल हो जाएगा- बस शीर्षलेख प्रदान करें और आगे बढ़ें चालू .. मैं और अधिक उत्सुक हूं कि आप सर्वर से एक शिकायत को ट्रिगर करने का प्रबंधन कैसे कर रहे हैं कि आपके अनुरोध में एक बॉडी है जब यह एक GET है, कथित तौर पर ब्राउज़र एड्रेस बार में दर्ज किया गया है ..
 – 
Caius Jard
16 जुलाई 2020, 15:54

1 उत्तर

सबसे बढ़िया उत्तर

समाधान केवल [FromUri] को MyDataDTO ऑब्जेक्ट प्रकार से पहले Get विधि के लिए जोड़ना था, जैसे:

[AllowAnonymous]
[HttpGet]
public IHttpActionResult GetData([FromUri] MyDataDTO publicInfo)
{
    
    return Ok(publicInfo);
}
0
DA_VDCT 16 जुलाई 2020, 17:13