एक सुंदर ठेठ सीआरयूडी ऑपरेशन के परिणामस्वरूप एक ऑब्जेक्ट को एक बार जारी रखने के बाद अपना आईडी सेट हो जाएगा।वेब एपीआई का उपयोग करते समय मैं POST से HttpResponseMessage से सामग्री कैसे निकालूं?
तो अगर मेरे पास नियंत्रक पर पोस्ट विधि है जो किसी ऑब्जेक्ट को स्वीकार करता है (JSON serialized, कहें) और HttpStesusCode के साथ एक HttpResponseMessage देता है और उसी ऑब्जेक्ट पर सामग्री सेट को शून्य से एक पूर्णांक में अपडेट किया गया है, तो मैं कैसे करूं उस आईडी मान पर जाने के लिए HttpClient का उपयोग करें?
यह शायद काफी सरल है लेकिन मैं देखता हूं कि System.Net.Http.StreamContent है। पोस्ट विधि से एक इंट वापस करने के लिए बेहतर है?
धन्यवाद।
अद्यतन (निम्नलिखित जवाब):
एक काम कर रहे उदाहरण ...
namespace TryWebAPI.Models {
public class YouAreJoking {
public int? Id { get; set; }
public string ReallyRequiresFourPointFive { get; set; }
}
}
namespace TryWebAPI.Controllers {
public class RyeController : ApiController {
public HttpResponseMessage Post([FromBody] YouAreJoking value) {
//Patience simulated
value.Id = 42;
return new HttpResponseMessage(HttpStatusCode.Created) {
Content = new ObjectContent<YouAreJoking>(value,
new JsonMediaTypeFormatter(),
new MediaTypeWithQualityHeaderValue("application/json"))
};
}
}
}
namespace TryWebApiClient {
internal class Program {
private static void Main(string[] args) {
var result = CreateHumour();
Console.WriteLine(result.Id);
Console.ReadLine();
}
private static YouAreJoking CreateHumour() {
var client = new HttpClient();
var pennyDropsFinally = new YouAreJoking { ReallyRequiresFourPointFive = "yes", Id = null };
YouAreJoking iGetItNow = null;
var result = client
.PostAsJsonAsync("http://localhost:1326/api/rye", pennyDropsFinally)
.ContinueWith(x => {
var response = x.Result;
var getResponseTask = response
.Content
.ReadAsAsync<YouAreJoking>()
.ContinueWith<YouAreJoking>(t => {
iGetItNow = t.Result;
return iGetItNow;
}
);
Task.WaitAll(getResponseTask);
return x.Result;
});
Task.WaitAll(result);
return iGetItNow;
}
}
}
लगता Node.js प्रेरित किया।
दरअसल - CodePlex पर कुछ सरकारी नमूने हैं यहां .NET 4.0 और 4.5 दोनों के लिए http://blogs.msdn.com/b/webdev/archive/2012/08/26/asp-net-web-api-and-httpclient-samples.aspx –
हाँ। धन्यवाद मार्क। वे नमूने वही थे जो मैं खोज रहा था। किसी भी तरह उन्हें याद किया। – ofraski