请高手赐教:在.net中通过HttpWebRequest向ASP页面中POST中文数据【"name=zhang帐张"】,asp中的request("name")出现乱码

guangjian 2003-04-09 11:47:12
源码:
asp部分:
<%@ codepage="936"%>
<%
response.ContentType = "text/xml"
Response.Write "<?xml version=" & AddQuotes("1.0") & " encoding=" & AddQuotes("gb2312") & "?>"
Response.Write "<a" & request("name") & "/>"
function AddQuotes(sText)
AddQuotes = """" & sText & """"
end function
%>


.net部分:
string strUrl="http://willpower/aa.asp";

string strData="name=zhang帐张";//aa.asp待接收的数据
// 与前置端会话
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

//req.ContentType = "application/unkown";
//req.ContentType ="text/xml;charset=gb2312";
StringBuilder UrlEncoded = new StringBuilder();
int i=0, j;
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;

#region 组织发送数据
while(i<strData.Length)
{
j=strData.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(strData.Substring(i, strData.Length-i)));
//UrlEncoded.Append(HttpUtility.UrlEncodeUnicode(strData.Substring(i, strData.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(strData.Substring(i, j-i)));
//string dd=strData.Substring(j,1);
UrlEncoded.Append(strData.Substring(j,1));
i = j+1;
}
#endregion

#region Post数据到服务器
//SomeBytes = Encoding.Unicode.GetBytes(UrlEncoded.ToString());
SomeBytes =System.Text.UTF8Encoding.ASCII.GetBytes(UrlEncoded.ToString());

//SomeBytes = Encoding.UTF8.GetBytes(HttpUtility.UrlEncode(strData));

req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Flush();
newStream.Close();
#endregion

#region 提取数据
HttpWebResponse result = (HttpWebResponse)req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
MemoryStream memStream = FilterStream(ReceiveStream);
ReceiveStream.Close();
result.Close();

XmlDocument xmldoc = new XmlDocument();
xmldoc.PreserveWhitespace = false;
xmldoc.Load(memStream);
//ss中有乱码
string ss=xmldoc.InnerXml;
string ss1="";

#endregion
}
catch(Exception exp)
{

}
...全文
39 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ju_feng 2003-06-09
  • 打赏
  • 举报
回复
try req.ContentType ="text/xml;charset=uft-8";

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧