นี่เป็นครั้งแรกของฉันที่ใช้ 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 กลับมาอย่างไรเพื่อให้ฉันสามารถแยกวิเคราะห์ได้
ขอบคุณ Elite
อัปเดตรหัส
// 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