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) 错误的请求。