2012-05-24 19 views
6

करने के लिए पोस्ट वस्तु मैं अगले ApiControllerASP.NET वेब एपीआई - कस्टम क्रिया नियंत्रक

public class ValuesController : ApiController 
{ 
    // GET /api/values 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

    public User CreateUser(User user) 
    { 
     user.Id = 1000; 
     return user; 
    } 
} 

अगले मार्ग

routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional }); 

साथ है और मैं इस सेवा का उपभोग करना चाहते हैं। मैं पहली विधि का उपभोग कर सकता हूं:

var client = new WebClient(); 
    var result = client.DownloadString(@"http://localhost:61872/api/values/get"); 

लेकिन मैं दूसरी विधि का उपभोग नहीं कर सकता।

  1. क्या सही सेवा विधि पैरामीटर के लिए कस्टम वस्तु स्थापित करने के लिए जिस तरह से: मैं एक दो प्रश्न हैं

    var user = new User() { Name = "user1", Password = "pass1" }; 
        var json = Newtonsoft.Json.JsonConvert.SerializeObject(user); 
        result = client.UploadString(@"http://localhost:61872/api/values/createuser", json); 
    

    मैं अतिरिक्त जानकारी

    The remote server returned an error: (500) Internal Server Error.

    बिना अगले अपवाद को पकड़ने: जब मैं आगे क्या?

  2. मुझे इस तरह के "जादू" अपवाद के बारे में अतिरिक्त जानकारी कैसे मिल सकती है?

उत्तर

8

क्या आप वाकई Content-Type अनुरोध हेडर उचित रूप से निर्धारित किया है, अन्यथा सर्वर यह नहीं पता कि है अनुरोध इनकोडिंग जा रहा है और user पैरामीटर है कि अपने एपीआई नियंत्रक कार्रवाई की जाती है रिक्त है बनाने के लिए एक JSON अनुरोध भेजने के लिए करना चाहते हैं :

using (var client = new WebClient()) 
{ 
    client.Headers[HttpRequestHeader.ContentType] = "application/json"; 
    var user = new User() { Name = "user1", Password = "pass1" }; 
    var json = Newtonsoft.Json.JsonConvert.SerializeObject(user); 
    var result = client.UploadString(@"http://localhost:61872/api/values/createuser", json); 
} 
+3

ओह, आदमी, धन्यवाद और मैं आप से क्या chidrens)) ने अपने मजाक)) और तुम मुझे asp.net/mvc अलावा WebAPI के बारे में किए गए दस्तावेज़ों के साथ कुछ linлs दे सकते हैं? – slavsergey

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