我想将一些遗留代码从使用HttpWebRequest更新为使用HttpClient,但我不太确定如何将字符串发送到我正在访问的REST API。
遗留代码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "text/xml";
request.ContentLength = payload.Length;
if (credentials != null)
{
request.Credentials = credentials;
}
// Send the request
Stream requestStream = request.GetRequestStream();
requestStream.Write(payload, 0, payload.Length);
requestStream.Close();
// Get the response
response = (HttpWebResponse)request.GetResponse();
我可以使用HttpClient.GetStreamAsync方法并像处理Web请求那样使用流吗?或者有没有一种方法可以对内容使用SendAsync并获得响应?
2条答案
按热度按时间iyfamqjs1#
我假设
payload
是一个string
。mkshixfv2#
您不需要访问请求流,您可以直接发送有效负载,但如果背后有原因,也可以这样做。
关于证书,你需要知道这些证书是什么类型的?是基本的认证吗?
如果是基本身份验证,则可以(在
HttpRequestMessage
对象中设置请求URI时,也可以在那里构造凭据)。然后您只需将其设置为请求URI。