Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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# 在c中使用HttpWebRequest和HttpWebRequest发布XML数据时引发WebException#_C#_Xml_Httpwebrequest_Httpwebresponse - Fatal编程技术网

C# 在c中使用HttpWebRequest和HttpWebRequest发布XML数据时引发WebException#

C# 在c中使用HttpWebRequest和HttpWebRequest发布XML数据时引发WebException#,c#,xml,httpwebrequest,httpwebresponse,C#,Xml,Httpwebrequest,Httpwebresponse,我试图通过在基于C#ASP.net的web应用程序中使用HttpWebRequest发送xml文档并使用HttpWebResponse接收,从UIDAI数据中心获取响应xml。我已经用一个java应用程序检查了它,它在他们这方面工作得很好,但是基于web的应用程序抛出了一个异常 System.dll中发生“System.Net.WebException”类型的异常,但未在用户代码中处理 注意:web异常发生在最后一行的第5行 请提出一些解决方法 public void SendForAuthen

我试图通过在基于C#ASP.net的web应用程序中使用HttpWebRequest发送xml文档并使用HttpWebResponse接收,从UIDAI数据中心获取响应xml。我已经用一个java应用程序检查了它,它在他们这方面工作得很好,但是基于web的应用程序抛出了一个异常

System.dll中发生“System.Net.WebException”类型的异常,但未在用户代码中处理

注意:web异常发生在最后一行的第5行

请提出一些解决方法

public void SendForAuthentication()//user defined function for Sending and Receiving Requests
{
    string url = "http://auth.uidai.gov.in/1.6/public/9/9/MLTbKYcsgYMq1zgL3WMZYrnyvsarlljxpom2A-QTPc0Zud23shpnqPk";//the host address
    StreamReader sr1 = new StreamReader("D:\\test-signed.xml");//loading xml file to stream
    string XMLData = sr1.ReadToEnd();
    string Conn = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>";
    XMLData = Conn + XMLData;
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(XMLData);
    req.Method = "POST";
    req.ContentType = "text/xml;charset=utf-8";
    req.ContentLength = requestBytes.Length;
    Stream requestStream = req.GetRequestStream();
    requestStream.Write(requestBytes, 0, requestBytes.Length);
    requestStream.Close();

    HttpWebResponse response = (HttpWebResponse)req.GetResponse();//**here I am getting a webexception**
    StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);
    string backstr = sr.ReadToEnd();
        reader.ReadToFollowing("title");


    File.WriteAllText("D:\\xml.xml", backstr);


}
public void SendForAuthentication()//用于发送和接收请求的用户定义函数
{
字符串url=”http://auth.uidai.gov.in/1.6/public/9/9/MLTbKYcsgYMq1zgL3WMZYrnyvsarlljxpom2A-QTPc0Zud23shpnqPk“;//主机地址
StreamReader sr1=新建StreamReader(“D:\\test signed.xml”);//正在将xml文件加载到流
字符串XMLData=sr1.ReadToEnd();
字符串Conn=@“”;
XMLData=Conn+XMLData;
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(url);
byte[]requestBytes=System.Text.Encoding.UTF8.GetBytes(XMLData);
请求方法=“POST”;
req.ContentType=“text/xml;charset=utf-8”;
req.ContentLength=requestBytes.Length;
Stream requestStream=req.GetRequestStream();
Write(requestBytes,0,requestBytes.Length);
requestStream.Close();
HttpWebResponse=(HttpWebResponse)req.GetResponse();//**这里我得到一个webexception**
StreamReader sr=新的StreamReader(response.GetResponseStream(),System.Text.Encoding.Default);
字符串backstr=sr.ReadToEnd();
读者。阅读如下(“标题”);
File.writealText(“D:\\xml.xml”,backstr);
}
编辑: 我得到的例外是“操作已超时”,尽管我增加了操作时间

编辑2:
上面的代码工作正常实际上我的防火墙有问题

异常的
消息
属性是什么?是否存在
InnerException
?@Richard它表示连接已超时。我增加了“httpRuntime executionTimeout=”1000000“。当我测试使用[link](www.requestmaker.com)提供的服务器引擎将xml发送到同一url时,它工作得很好。我会使用类似Fiddler的东西来查看HTTP级别上的情况:请求的头和正文是否与服务预期相符。另外,请用异常的全部细节和调试步骤更新问题。使用fiddler时,我得到3个与主机名匹配的进程。第一个给出了一个结果:200,表示它是用响应头实体编码的:content length:2731 content type:text/html;字符集=utf-8杂项:X源文件:=?utf-8?B?QzpcVXNlc。。。第二个过程也给出了HTTP/1.1 200 OK,内容长度更改,内容类型更改为application/json第三个过程使用传输内容编码:qzip是否有不同的接收方式您需要在Inspector中使用正确的解码选项:查看下方(响应)窗格的transformer选项卡