В настоящее время в моих проектах я использую класс HttpWebRequest для вызова любых API-интерфейсов REST.C# HttpClient или HttpWebRequest класс
как этот
public string Post(string postData)
{
string resultString = string.Empty;
WebRequest req = WebRequest.Create(_serviceEndoint);
HttpWebRequest httpWebReq = (HttpWebRequest)req;
httpWebReq.CookieContainer = _cookieContainer;
req.ContentType = "application/xml";
req.Method = "POST";
req.Credentials = new NetworkCredential("Administrator", "Password");
try
{
Stream requestStream = req.GetRequestStream();
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(postData);
requestStream.Write(bytes, 0, bytes.Length);
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
if (resp.StatusCode == HttpStatusCode.OK)
{
using (Stream respStream = resp.GetResponseStream())
{
StreamReader reader = new StreamReader(respStream, Encoding.UTF8);
resultString = reader.ReadToEnd();
}
}
}
catch (Exception ex)
{
resultString = ex.ToString();
}
return resultString;
}
Это работает :) Но мне любопытно довольно новый способ сделать это. Имеет ли класс HttpClient какие-либо недостатки (ваш опыт, мнения)?
Использует этот класс в настоящее время как лучший способ вызвать службы отдыха (получить, отправить, поместить, удалить) вместо того, чтобы делать все это вручную?
'HttpClient' гораздо проще. – SLaks
Любые вещи, которые я не могу сделать, когда предпочитаю HttpClient над другим? –