Как я могу вернуть httpwebresponse в моем методе sendrequest, чтобы я мог вернуть свой вызов GET и POST также как httpwebresponse?
Currently мой метод send request возвращает строку, но я хотел бы знать, как я могу сделать так, чтобы он возвращал HttpWebResponse, чтобы я мог получить ответ в моих вызовах GET, POST как Json
Вот мой метод sendrequest сценарию
public class RestClient{ private static string JSON_ERROR = "error"; private string SendRequest(HttpWebRequest request, string queryParams, string token) { HttpWebResponse response = null; if(token != null) { request.Headers.Add("Authorization", "Bearer " + token); } request.ContentType = "application/json"; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException wex) { if (wex.Response == null) return JSON_ERROR; using (var errorResponse = (HttpWebResponse)wex.Response) { using (var reader = new StreamReader(errorResponse.GetResponseStream())) { return reader.ReadToEnd(); //expected error from JSON } } } var responseVal = new StreamReader(stream: response.GetResponseStream()).ReadToEnd(); return responseVal; } } Here is my GET and POST methods public string IsGet(string baseURL, string basePath, string queryParams, string token) { var request = (HttpWebRequest)WebRequest.Create(baseURL+basePath+queryParams); request.Method = "GET"; return SendRequest(request, queryParams, token); } public string IsPost(string baseURL, string basePath, string queryParams, string json, string token) { var request = (HttpWebRequest)WebRequest.Create(baseURL+basePath+queryParams); request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("Authorization", "Bearer " + token); byte[] postBytes = Encoding.ASCII.GetBytes(json); request.ContentLength = postBytes.Length; var requestStream = request.GetRequestStream(); requestStream.Write(postBytes, 0, postBytes.Length); requestStream.Close(); return SendRequest(request, queryParams, token); }
Что я уже пробовал:
Я попробовал следующее решение, но когда я пытаюсь получить свой ответ в моем GET или POST вызове, он равен нулю.
private HttpWebResponse SendRequest(HttpWebRequest request, string queryParams, string token) { HttpWebResponse response = null; if(token != null) { request.Headers.Add("Authorization", "Bearer " + token); } request.ContentType = "application/json"; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException wex) { if (wex.Response == null) //return JSON_ERROR; using (var errorResponse = (HttpWebResponse)wex.Response) { using (var reader = new StreamReader(errorResponse.GetResponseStream())) { //return reader.ReadToEnd(); //expected error from JSON } } } //response.GetResponseStream(); var responseVal = new StreamReader(stream: response.GetResponseStream()).ReadToEnd(); var json = JsonConvert.DeserializeObject(responseVal); return json; }