Вы можете написать следующий код:
string url = currentURL + "resources/" + ResourceID + "/accounts?AUTHTOKEN=" + pmtoken;
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
var json = content.ReadAsStringAsync().Result;
}
}
}
Update 1:
если вы хотите заменить призвание Result
собственности с await
Ключевым словом, то это возможно, но у вас есть поставить этот код в метод, который обозначен как async
следующим образом:
если вы пропустили async
ключевое слово из метода, вы могли бы получить Compile ошибку времени в следующем
The «поджидает» оператора может быть использованы только в качестве метода асинхронного. Подумайте о маркировке этого метода с помощью модификатора «async» и измените его тип возврата на «Задача».
Update 2:
В ответ на исходный вопрос о преобразовании «WebClient» в «WebRequest» это код, который вы могли бы использовать ... Но Microsoft (и я) рекомендовал вам использовать первый подход (используя HttpClient).
string url = currentURL + "resources/" + ResourceID + "/accounts?AUTHTOKEN=" + pmtoken;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";
using (WebResponse response = httpWebRequest.GetResponse())
{
HttpWebResponse httpResponse = response as HttpWebResponse;
using (StreamReader reader = new StreamReader(httpResponse.GetResponseStream()))
{
var json = reader.ReadToEnd();
}
}
Update 3
Чтобы узнать, почему HttpClient
больше, чем рекомендуемое WebRequest
и WebClient
вы можете обратиться по следующим ссылкам.
Need help deciding between HttpClient and WebClient
http://www.diogonunes.com/blog/webclient-vs-httpclient-vs-httpwebrequest/
HttpClient vs HttpWebRequest
What difference is there between WebClient and HTTPWebRequest classes in .NET?
http://blogs.msdn.com/b/henrikn/archive/2012/02/11/httpclient-is-here.aspx
Все крутые дети используют HttpClient в настоящее время. Это оболочка WebRequest и обеспечивает более легкую модель для работы. – Ananke
@Ananke ok, так вы можете придумать, как изменить WebClient как HttpClient? –