यह मेरा पहला कभी JSON का उपयोग कर के रूप में भी है System.Net
और WebRequest
मेरी अनुप्रयोगों में से किसी में। मेरा आवेदन एक JSON पेलोड भेजने के लिए माना जाता है, एक प्रमाणीकरण सर्वर के नीचे एक के समान:
{
"agent": {
"name": "Agent Name",
"version": 1
},
"username": "Username",
"password": "User Password",
"token": "xxxxxx"
}
इस पेलोड को बनाने के लिए, मैंने JSON.NET
लाइब्रेरी का उपयोग किया । मैं इस डेटा को प्रमाणीकरण सर्वर पर कैसे भेजूंगा और इसकी JSON प्रतिक्रिया वापस पाऊंगा? यहाँ मैंने कुछ उदाहरणों में देखा है, लेकिन कोई JSON सामग्री नहीं:
var http = (HttpWebRequest)WebRequest.Create(new Uri(baseUrl));
http.Accept = "application/json";
http.ContentType = "application/json";
http.Method = "POST";
string parsedContent = "Parsed JSON Content needs to go here";
ASCIIEncoding encoding = new ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(parsedContent);
Stream newStream = http.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
var response = http.GetResponse();
var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();
हालाँकि, यह उन अन्य भाषाओं का उपयोग करने के लिए बहुत अधिक कोड है जो मैंने पूर्व में उपयोग की गई भाषाओं के लिए उपयोग किए हैं। क्या मैं यह सही ढंग से कर रहा हूं? और मुझे JSON की प्रतिक्रिया वापस कैसे मिलेगी ताकि मैं इसे पार्स कर सकूं?
धन्यवाद, अभिजात वर्ग।
अपडेटेड कोड
// Send the POST Request to the Authentication Server
// Error Here
string json = await Task.Run(() => JsonConvert.SerializeObject(createLoginPayload(usernameTextBox.Text, password)));
var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
using (var httpClient = new HttpClient())
{
// Error here
var httpResponse = await httpClient.PostAsync("URL HERE", httpContent);
if (httpResponse.Content != null)
{
// Error Here
var responseContent = await httpResponse.Content.ReadAsStringAsync();
}
}
WebClient.UploadString(JsonConvert.SerializeObjectobj(yourobj))
याHttpClient.PostAsJsonAsync