gpt4 book ai didi

c# - Response.OutputStream.Write 问题

转载 作者:太空狗 更新时间:2023-10-30 01:05:34 28 4
gpt4 key购买 nike

我对这个方法有问题,出于某种原因,我向我的 asp 页面发送请求,然后读取 Response 流,我得到了我的 asp 页面的内容以及我写的数据进入 Response.OutputStream.Write(info, 0, info.Length)

在我的例子中,我将字符串“1”写成字节,客户端程序的输出是:

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title></head>
<body>
<form method="post" action="LauncherLogin.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZMraZTexYtyyQ9NaNN0YMvYIep5peaSEIrDBqxTff6rW" />

<div>

</div>
</form>
</body>
</html>

我不想在收到的响应中使用此 HTML,我该如何摆脱它?

客户端代码(c#程序):

public static string SendInformation(string values)
{
ASCIIEncoding encoding = new ASCIIEncoding();

string postData = values;
byte[] data = encoding.GetBytes(postData);

// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serverAddress + commmunicationForm);
myRequest.Method = "POST";
myRequest.ContentType = "text/html";
myRequest.ContentLength = data.Length;
string result;

using (Stream stream = myRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
using (WebResponse response = myRequest.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
return result;
}
}
}

ASP.aspx.cs 代码(服务器端):

if (dt.Rows.Count > 0)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = false;
string errNum = dt.Rows[0][0].ToString();
byte[] info = Encoding.ASCII.GetBytes(errNum);
Response.OutputStream.Write(info, 0, info.Length);
Response.Flush();
}

即使我这样做:

string errNum = dt.Rows[0][0].ToString();
byte[] info = Encoding.ASCII.GetBytes(errNum);
Response.OutputStream.Write(info, 0, info.Length);
Response.Flush();

我仍然得到 html 代码:|

我确实尝试了 Response.Clear() 和其他 .Clear() 方法但没有成功。

最佳答案

您的问题是您试图在页面生命周期中过早地更改输出(您试图在事件处理阶段影响总输出)。您需要在 Render 方法中具有更改内容的逻辑。您可以覆盖 Render 方法,如下所示:

protected override void Render(HtmlTextWriter writer)
{
// Your logic here
}

阅读ASP.NET Page Life Cycle Overview有关页面事件及其发生顺序的更多信息。

关于c# - Response.OutputStream.Write 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359656/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com