首先,代码:
myRequest.Method = "POST";
Stream myStream = new MemoryStream();//定义这个Stream是只是为了得到发送字串 经过编码之后得到的byte的长度。
StreamWriter myStreamWriter = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(SqlHelper.UC_CHARSET));//用默认编码 得到Stream
myStreamWriter.Write(post);
myStreamWriter.Flush();
long len = myStream.Length;//目的完成
myStreamWriter.Close();
myStream.Close(); myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = len;//如果字符串中存在中文 使用loginWebView.postContent.Length得到长度和编码之后的长度是不一样的:( Stream newStream = myRequest.GetRequestStream();
myStreamWriter = new StreamWriter(newStream, System.Text.Encoding.GetEncoding(SqlHelper.UC_CHARSET));//编码使用Encoding.Default 换来换去编码方法 还是用它得到的中文不会出现乱码 myStreamWriter.Write(post);
myStreamWriter.Close();
newStream.Close();
在发起请求时,action端取不到post的数据。
如果用
byte[] bytes = Encoding.UTF8.GetBytes(strParameter);
httprequestPost.ContentLength = bytes.Length;
Stream os = httprequestPost.GetRequestStream();
这种方法,可以取到,但是中文时有错。
请问第一种在写入requeststream时怎么不可以写入成功吗??
myRequest.Method = "POST";
Stream myStream = new MemoryStream();//定义这个Stream是只是为了得到发送字串 经过编码之后得到的byte的长度。
StreamWriter myStreamWriter = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(SqlHelper.UC_CHARSET));//用默认编码 得到Stream
myStreamWriter.Write(post);
myStreamWriter.Flush();
long len = myStream.Length;//目的完成
myStreamWriter.Close();
myStream.Close(); myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = len;//如果字符串中存在中文 使用loginWebView.postContent.Length得到长度和编码之后的长度是不一样的:( Stream newStream = myRequest.GetRequestStream();
myStreamWriter = new StreamWriter(newStream, System.Text.Encoding.GetEncoding(SqlHelper.UC_CHARSET));//编码使用Encoding.Default 换来换去编码方法 还是用它得到的中文不会出现乱码 myStreamWriter.Write(post);
myStreamWriter.Close();
newStream.Close();
在发起请求时,action端取不到post的数据。
如果用
byte[] bytes = Encoding.UTF8.GetBytes(strParameter);
httprequestPost.ContentLength = bytes.Length;
Stream os = httprequestPost.GetRequestStream();
这种方法,可以取到,但是中文时有错。
请问第一种在写入requeststream时怎么不可以写入成功吗??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货