이것은 내 첫 번째뿐만 아니라 어느 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