2014-09-02 91 views
0

我只需要将来自C#桌面应用程序的xml数据发送到ASP.Net网页。我的C#代码看起来像这样。C#将数据发布到ASP .Net应用程序

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是网络上一个标签page.But我labelsam.Is得到没什么反正有检查数据是否received.Also什么代码错误?

+0

你回复什么回复?此外,你应该看看利用'IDisposable'。利用'使用'。 – 2014-09-02 07:55:09

+0

如何检查响应? – sameedhayat 2014-09-02 08:14:57

+0

呃,调试它?将它转储到控制台,一个Windows窗体?无论你真的喜欢什么。 – 2014-09-02 09:06:05

回答

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(); 
相关问题