c# 使用HttpWebRequest请求时返回报错IOException: 从传输流收到意外的 EOF 或 0 个字节

之前一直是没问题的,最近突然不行了。看了网上的方法如设置ServicePointManager.ServerCertificateValidationCallback
之类的都不行。
解决方法:最后将.net2.0升级到.net4.7。

升级之后又出现新问题 请求被中止: 未能创建 SSL/TLS 安全通道。
添加
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
这一句之后解决。

在 .NET 中,你可以使用 `HttpWebRequest` 类以及 XML Web Service (WS) 的 SOAP 协议来发送 HTTP 请求到 WebService 接口。`@xmlns:soapenv` 标签通常表示命名空间,这里的 `soapenv` 很可能是 "SOAPEnvelope",它是 SOAP 消息的基本结构,包含了消息头和体。 下面是一个简单的示例,展示如何使用 `HttpWebRequest` 发送 SOAP 请求到一个名为 "MyWebService" 的服务: ```csharp using System; using System.Net; using System.Text; using System.Xml.Linq; namespace CSharpDotNetWebServicesExample { public class Program { private const string SoapAction = "http://mywebservice.com/MyOperation"; private const string Url = "https://example.com/services/MyWebService.asmx"; static void Main(string[] args) { // 创建 SOAP 消息 XDocument soapMessage = new XDocument( new XElement("soapenv:Envelope", new XElement("soapenv:Header", /* 添加任何头部信息 */), new XElement("soapenv:Body", new XElement("ns:MyOperation", // 'ns'是你wsdl文件中的命名空间 new XElement("param1", "value1"), new XElement("param2", "value2") )) )); // 设置请求 var request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "POST"; request.ContentType = "text/xml; charset=utf-8"; request.Headers["SOAPAction"] = SoapAction; request.ContentLength = soapMessage.ToString().Length; // 写入消息体 using (var streamWriter = new StreamWriter(request.GetRequestStream())) { soapMessage.Save(streamWriter); } try { // 获取响应 var response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { // 读取并处理响应数据 using (var reader = new StreamReader(response.GetResponseStream())) { Console.WriteLine(reader.ReadToEnd()); } } else { Console.WriteLine($"Error: {response.StatusCode}"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值