httppost 远程服务器返回错误: (400) 错误的请求错误

public static string HttpPost(string Url, string postDataStr)
        {
            string result = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentType = "application/json";
                // request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);

                Stream myRequestStream = request.GetRequestStream();
                //如果为gb2312,参数中有汉字时会发生错误: 
                //远程服务器返回错误: (400) 错误的请求。      
                StreamWriter myStreamWriter =
                    new StreamWriter(myRequestStream, Encoding.GetEncoding("utf-8"));

                myStreamWriter.Write(postDataStr);
                myStreamWriter.Close();

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = 
                    new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                result = retString;
                myStreamReader.Close();
                myResponseStream.Close();
            }
            catch (Exception ex)
            {
                LogHelper.Error("", ex);
            }
            return result;
        }

注意这一句

StreamWriter myStreamWriter =
                    new StreamWriter(myRequestStream, Encoding.GetEncoding("utf-8"));

如果为gb2312,参数中有汉字时会发生错误。远程服务器返回错误: (400) 错误的请求。


你可能感兴趣的:(httppost 远程服务器返回错误: (400) 错误的请求错误)