Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从Web请求发送HTML文本响应?_C#_Html_Asp.net - Fatal编程技术网

C# 如何从Web请求发送HTML文本响应?

C# 如何从Web请求发送HTML文本响应?,c#,html,asp.net,C#,Html,Asp.net,我有一个在WindowsCE上运行的桌面应用程序,带有嵌入式浏览器控件(我相信是IE4)。Windows CE的指令集有限。它的.NET Compact Framework 3.5仅限于HttpWebRequest 对于这个设备,我正在向我们的web服务器进行查询 当我们将产品信息发送到web服务器时,我们希望它用一个包含信息的非常基本的HTML页面进行响应 在Windows CE设备上,我运行以下代码: private const string _URL = "http://192.168.2

我有一个在WindowsCE上运行的桌面应用程序,带有嵌入式浏览器控件(我相信是IE4)。Windows CE的指令集有限。它的.NET Compact Framework 3.5仅限于HttpWebRequest

对于这个设备,我正在向我们的web服务器进行查询

当我们将产品信息发送到web服务器时,我们希望它用一个包含信息的非常基本的HTML页面进行响应

在Windows CE设备上,我运行以下代码:

private const string _URL = "http://192.168.2.202/query.aspx";

public string QueryProduct(string productID)
{
    var preReq = (HttpWebRequest)WebRequest.Create(_URL);
    preReq.Credentials = CredentialCache.DefaultCredentials;
    preReq.PreAuthenticate = true;
    preReq.UserAgent = "WindowsCE Client";
    preReq.Method = "HEAD";
    preReq.Timeout = 10000;
    using (var response = (HttpWebResponse)preReq.GetResponse())
    {
        response.Close(); // seems a bit pointless
    }
    var request = (HttpWebRequest)WebRequest.Create(url);
    request.Credentials = CredentialCache.DefaultCredentials;
    request.PreAuthenticate = true;
    request.UserAgent = "WindowsCE Client";
    request.Method = "POST";
    request.Timeout = 10000;
    request.ContentType = "application/x-www-form-urlencoded";
    var postData = String.Format("id=1&product={1}", productID);
    var data = Encoding.UTF8.GetBytes(postData);
    request.ContentLength = data.Length;
    using (var stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }
    data = null;
    using (var response = (HttpWebResponse)request.GetResponse())
    {
        return new StreamReader(response.GetResponseStream()).ReadToEnd();
    }
}
这一部分似乎工作得很好,但它就在那里,以防有什么不对劲

现在,我的ASP.NET文件query.aspx是一个简单的单页文件(即没有代码隐藏):


产品查询
无效页面加载(对象发送方,事件参数e)
{
var authID=Request.QueryString[“id”];
var product=Request.QueryString[“product”];
txtAuthenticationID.Text=authID;
txtProduct.Text=产品;
如果(!String.IsNullOrEmpty(authID)&&
!String.IsNullOrEmpty(产品))
{
搜索\单击(发件人,e);
}
}
无效搜索\u单击(对象发送者,事件参数e)
{
var authID=txtAuthenticationID.Text.Trim();
var product=txtProduct.Text.Trim();
如果(!String.IsNullOrEmpty(authID)&&
!String.IsNullOrEmpty(产品))
{
var htm=String.Format(
“测试产品:{0}

文件结束

”,产品); Response.Write(htm); Response.End(); } } 身份验证ID: 产品:
这里的想法是仅当authID和product这两(2)个值存在时才返回格式化的HTML文本,否则将显示一个表单,允许用户在提供的表单中指定这些值

如果我删除行
Response.End(),我将格式化字符串和下面的HTML表单放在顶部

如果我包括行
Response.End(),我只得到空白表单-就像没有任何东西沿着查询字符串输入。< /P>

我需要做什么才能让它工作?呃。。。坚持今天早上似乎工作得很好。{混乱}这里也混乱。首先,我想知道如果不发送&btnSearch=Search来模拟按钮单击,它如何响应格式化的html。它不应引发按钮单击事件!你自己在叫它!:)我的Windows CE设备具有条形码阅读器。有人扫描条形码,然后我的C#代码调用HttpWebRequest——将条形码文本作为变量
product
传递给它。不是最好的名字选择,但它仍在开发中。@OguzOzgul-忘记在上面的评论中标记你了。
<%@ Page Language="C#" %>
<html >
<head>
    <title>Product Query</title>
    <script runat="server">
        void Page_Load(object sender, EventArgs e)
        {
            var authID = Request.QueryString["id"];
            var product = Request.QueryString["product"];
            txtAuthenticationID.Text = authID;
            txtProduct.Text = product;
            if (!String.IsNullOrEmpty(authID) &&
                !String.IsNullOrEmpty(product))
            {
                Search_Click(sender, e);
            }
        }
        void Search_Click(Object sender, EventArgs e)
        {
            var authID = txtAuthenticationID.Text.Trim();
            var product = txtProduct.Text.Trim();
            if (!String.IsNullOrEmpty(authID) &&
                !String.IsNullOrEmpty(product))
            {
                var htm = String.Format(
                    "<html><head><title>TEST</title></head><body><p>Product: {0}</p><p>End of File</p></body></html>", product);
                Response.Write(htm);
                Response.End();
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div>Authentication ID: <asp:TextBox ID="txtAuthenticationID" runat="server"></asp:TextBox></div>
        <div>Product: <asp:TextBox ID="txtProduct" runat="server"></asp:TextBox></div>
        <div><asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="Search_Click" /></div>
    </div>
    </form>
</body>
</html>