繁体   English   中英

将 webclient 的 post 数据转换为 httpclient

[英]Convert post data from webclient to httpclient

我已经搜索并找不到与将 webClient 转换为 HttpClient 所需的方法相近的答案。

我有一个 xml 文件,该文件写入 memory stream 并上传到提供商以发布数据。 我以字节数组的形式返回响应,该数组转换为 ascii 字符串。 这是我 10 年前复制的一些代码,一直在使用它,直到我将我的 webapi 升级到 net 6.0。 然后我发现 webClient 已被弃用。

这是我需要转换的代码:

public static string Submit(string url,other string fields){
MemoryStream stream = new MemoryStream();
XmlTextWriter xml = new XmlTextWriter(stream, null);
--here I add several xml nodes and data
WebClient web = new WebClient();
web.Credentials = CredentialCache.DefaultCredentials;
try
{
    byte[] response = web.UploadData(url, stream.ToArray());
    return Encoding.ASCII.GetString(response);

}
catch (WebException ex)
{
   if (((null != ex.Response)))
    {
       using (StreamReader reader = new StreamReader(ex.Response.GetResponseStream()))
       {
          return reader.ReadToEnd();
       }
    }
    return ex.ToString();
  }
}

提前致谢

这应该让你至少开始:

using System.Text;
using System.Xml;

public async static Task<string> Submit(string url, other string fields)
{
    MemoryStream stream = new MemoryStream();
    XmlTextWriter xml = new XmlTextWriter(stream, null);
    //here I add several xml nodes and data
    HttpClient client = new HttpClient();

    try
    {
        string content = Encoding.ASCII.GetString(stream.ToArray());
        var httpContent = new StringContent(content, Encoding.UTF8, "text/xml");
        HttpResponseMessage result = await client.PostAsync(url, httpContent);
        string response = await result.Content.ReadAsStringAsync();

        return response;
    }
    catch
    {
        ...
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM