在.NET C#中将XML发布到Web服务并接收响应 [英] Posting XML to Web service in .NET C# and recieving response

查看:82
本文介绍了在.NET C#中将XML发布到Web服务并接收响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个XML请求文档,我将其发布到WebService。



我的项目已上传到我的Web服务器上。网络服务提供商仅允许访问我的网络服务器IP。



但是当我请求响应时我收到错误''服务器错误 - 500 - 你不是允许访问系统 - //这里显示我的客户端机器的IP,我从中访问该页面//



代码如下。



请帮忙。



 受保护  void  Page_Load( object  sender,EventArgs e)
{
WebRequest req = null ;
WebResponse rsp = null ;
尝试
{
string fileName = Server.MapPath(< span class =code-string> 〜\\HotelValuedAvailRQ.xml);
string uri = http:// 212.170.239.71/appservices/http/FrontendService;
req = WebRequest.Create(uri);
// req.Proxy = WebProxy.GetDefaultProxy(); //启用使用代理
req.Method = POST; // 发布方法
req.ContentType = text / xml; // 内容类型
// 使用基于文本的编写器包装请求流
StreamWriter writer = new StreamWriter( req.GetRequestStream());
// 将XML文本写入流
writer.WriteLine(< span class =code-keyword> this
.GetTextFromXMLFile(fileName));
writer.Close();
// 将数据发送到网络服务器
rsp = req.GetResponse( ); // 我在这里收到错误
StreamReader sr = new StreamReader(rsp.GetResponseStream());
string result = sr.ReadToEnd();
sr.Close();
Response.Write(result);

}
catch (WebException webEx)
{
Response.Write(webEx.Message.ToString ());
Response.Write(webEx.StackTrace.ToString());
}
catch (例外情况)
{
Response.Write(ex.Message.ToString());
Response.Write(ex.StackTrace.ToString());
}
最后
{
if (req != null )req.GetRequestStream()。Close();
if (rsp!= null )rsp.GetResponseStream()。Close();
}
}
// 从本地系统读取xml数据的函数
/// < < span class =code-summarycomment>摘要 >
// / 从文件
中读取XML数据
/// < / summary >
/// < param name =file > < / param >
/// < 返回 > 以XML字符串格式返回文件内容< / returns >
private string GetTextFromXMLFile( string file )
{
StreamReader reader = new StreamReader(file);
string ret = reader.ReadToEnd();
reader.Close();
返回 ret;
}

解决方案

显然,您的服务器未配置为允许您访问。对代码进行任何更改都不会更改有关您访问服务器的权限的消息。如果你怀疑这一点,写一个传递int的服务,看看会发生什么。


 req.ContentType =   text / xml;  //  内容类型 

req.Credentials = CredentialCache.DefaultNetworkCredentials;


rsp =(HttpWebResponse)req.GetResponse();



这应该有用!!

I have a XML request document which I am Posting to the WebService.

I have my project uploaded on my web server. The webservice provider has allowed access to my web server IP only.

But I am getting error when I am requesting the response ''Server Error - 500 - You are not allowed to access the system - //here it is showing my client machine''s IP from which I am accessing the page//

The code is given below.

Please help.

protected void Page_Load(object sender, EventArgs e)
    {
        WebRequest req = null;
        WebResponse rsp = null;
        try
        {
            string fileName = Server.MapPath("~\\HotelValuedAvailRQ.xml");
            string uri = "http://212.170.239.71/appservices/http/FrontendService";
            req = WebRequest.Create(uri);
            //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy
            req.Method = "POST";        // Post method
            req.ContentType = "text/xml";     // content type
            // Wrap the request stream with a text-based writer
            StreamWriter writer = new StreamWriter(req.GetRequestStream());
            // Write the XML text into the stream
            writer.WriteLine(this.GetTextFromXMLFile(fileName));
            writer.Close();
            // Send the data to the webserver
            rsp = req.GetResponse(); //I am getting error over here
            StreamReader sr = new StreamReader(rsp.GetResponseStream());
            string result = sr.ReadToEnd();
            sr.Close();
            Response.Write(result);
            
        }
        catch (WebException webEx)
        {
            Response.Write(webEx.Message.ToString());
            Response.Write(webEx.StackTrace.ToString());
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message.ToString());
            Response.Write(ex.StackTrace.ToString());
        }
        finally
        {
            if (req != null) req.GetRequestStream().Close();
            if (rsp != null) rsp.GetResponseStream().Close();
        }
    }
        //Function to read xml data from local system
  /// <summary>
  /// Read XML data from file
  /// </summary>
  /// <param name="file"></param>
  /// <returns>returns file content in XML string format</returns>
  private string GetTextFromXMLFile(string file)
  {
   StreamReader reader = new StreamReader(file);
   string ret = reader.ReadToEnd();
   reader.Close();
   return ret;
  }

解决方案

Obviously your server is NOT configured to give you access. No change to your code will change a message that is about your rights to access the server. If you doubt this, write a service that passes an int, and see what happens.


req.ContentType = "text/xml"; // content type

req.Credentials = CredentialCache.DefaultNetworkCredentials;


rsp = (HttpWebResponse) req.GetResponse();

This should work!!


这篇关于在.NET C#中将XML发布到Web服务并接收响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆