【问题标题】:C# to post data to ASP .Net applicationC# 将数据发布到 ASP .Net 应用程序
【发布时间】:2023-03-27 17:12:01
【问题描述】:

我想要的只是将 xml 数据从 C# 桌面应用程序发送到 ASP.Net 网页。 我的 C# 代码如下所示。

public string SendRequest()
{   string data = "<?xml version="1.0"?><author>Gambardella, Matthew</author>";
    string _result;
    Uri uri = new Uri("http://localhost:62511/Default");
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.Method = "POST";
    request.ContentType = "text/xml";
    var writer = new StreamWriter(request.GetRequestStream());
    writer.Write(data);
    writer.Close();

    var response = (HttpWebResponse)request.GetResponse();

    var streamResponse = response.GetResponseStream();
    var streamRead = new StreamReader(streamResponse);
    Console.Write(response.StatusCode);
    _result = streamRead.ReadToEnd().Trim();
    streamRead.Close();
    streamResponse.Close();
    response.Close();
    return _result;
}

我的 ASP .Net 代码如下所示

protected void Page_Load(object sender, EventArgs e)
{
    using (var reader = new StreamReader(Request.InputStream))
    {
        string xml = reader.ReadToEnd();

        labelsam.Text = xml;
    }
    ....
}

labelsam 是网页上的标签。但是我在labelsam 中没有得到任何信息。有没有办法检查是否收到了数据。还有代码有什么问题?

【问题讨论】:

  • 您得到什么回复?另外,您应该考虑使用IDisposable。使用using
  • 如何查看响应?
  • 呃,调试一下?把它转储到控制台,一个windows窗体?不管你喜欢什么。
  • 谢谢。我在控制台上看到了数据,但在网页上看不到。你能告诉我什么问题吗?
  • 很明显,您是 C# 和一般编程的初学者。我建议你先做一些基本的教程,然后再解决这样的问题。完成后,您将拥有自己解决问题的工具和专业知识。

标签: c# xml httpwebrequest


【解决方案1】:

您必须为 post 方法指定内容长度。

var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "text/xml";
request.ContentLength=data.Length; //ugly, but at least so
var writer = new StreamWriter(request.GetRequestStream());
writer.Write(data);
writer.Close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多