C# ASP.NET MVC中带有特殊字符的RestAPI Post方法不起作用

C# ASP.NET MVC中带有特殊字符的RestAPI Post方法不起作用,c#,.net,asp.net-mvc-5,restapi,C#,.net,Asp.net Mvc 5,Restapi,我们正试图在post方法中编写特殊字符,但下面出现异常 在写入所有字节之前无法关闭流 下面是我正在使用的示例代码,下面是我正在尝试编写的特殊字符 internal static T InvokePostService<T>(string serviceUri, string _data) { T _returnResponse = default(T); HttpWebRequest req = null; HttpWebResponse res = null

我们正试图在post方法中编写特殊字符,但下面出现异常

在写入所有字节之前无法关闭流

下面是我正在使用的示例代码,下面是我正在尝试编写的特殊字符

internal static T InvokePostService<T>(string serviceUri, string _data)
{
    T _returnResponse = default(T);
    HttpWebRequest req = null;
    HttpWebResponse res = null;
    
    try
    {
        string url = serviceUri;
        req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "POST";
        req.ContentType = "application/json; charset=utf-8";
        req.Timeout = 600000;
        req.Headers.Add("SOAPAction", url);
        req.ContentLength = _data.Length;
        var sw = new StreamWriter(req.GetRequestStream());
        sw.Write(_data);
        sw.Close();
        res = (HttpWebResponse)req.GetResponse();
        Stream responseStream = res.GetResponseStream();
        var streamReader = new StreamReader(responseStream);
        string responseString = streamReader.ReadToEnd();
        _returnResponse = JsonConvert.DeserializeObject<T>(responseString);
    }
内部静态T InvokePostService(字符串serviceUri,字符串\u数据)
{
T_returnResponse=默认值(T);
HttpWebRequest req=null;
HttpWebResponse res=null;
尝试
{
字符串url=serviceUri;
req=(HttpWebRequest)WebRequest.Create(url);
请求方法=“POST”;
req.ContentType=“application/json;charset=utf-8”;
请求超时=600000;
添加(“SOAPAction”,url);
req.ContentLength=_data.Length;
var sw=新的StreamWriter(req.GetRequestStream());
软件写入(_数据);
sw.Close();
res=(HttpWebResponse)req.GetResponse();
Stream responseStream=res.GetResponseStream();
var streamReader=新的streamReader(responseStream);
字符串responseString=streamReader.ReadToEnd();
_returnResponse=JsonConvert.DeserializeObject(responseString);
}

要写的字符:•

有帮助吗?使用System.Net.WebUtility.HtmlEncode(字符串)和System.Net.WebUtility.HtmlCode(字符串)按照错误所说的那样,忽略@jdweng,在启动请求并读取其响应之前不要关闭流。或者,你知道,使用HttpClient而不是古老的HttpWebRequest。