Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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# WebRequest:内容类型=文本/普通;charset=iso-8859-1:&x27;基础连接已关闭:连接意外关闭;_C#_Webrequest_Iso 8859 1 - Fatal编程技术网

C# WebRequest:内容类型=文本/普通;charset=iso-8859-1:&x27;基础连接已关闭:连接意外关闭;

C# WebRequest:内容类型=文本/普通;charset=iso-8859-1:&x27;基础连接已关闭:连接意外关闭;,c#,webrequest,iso-8859-1,C#,Webrequest,Iso 8859 1,我需要发布的服务器只接受“iso-8859-1”。我不知道我是否做得对,因为每当我收到web请求的响应时,它都会给我一个错误“底层连接已关闭:连接意外关闭” 请参阅下面的代码 var someGeneratedString = "This_is a generated string!" WebRequest request = WebRequest.Create("https://******"); // This is private, sorry. request.Method = "POS

我需要发布的服务器只接受“iso-8859-1”。我不知道我是否做得对,因为每当我收到web请求的响应时,它都会给我一个错误“底层连接已关闭:连接意外关闭”

请参阅下面的代码

var someGeneratedString = "This_is a generated string!"
WebRequest request = WebRequest.Create("https://******"); // This is private, sorry.
request.Method = "POST";

byte[] byteArray = Encoding.Default.GetBytes(someGeneratedString);
string xx = Encoding.UTF8.GetString(byteArray);
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(rawRequest);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);

request.ContentType = "text/plain;charset=iso-8859-1";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(isoBytes, 0, isoBytes.Length);
dataStream.Close();

WebResponse response = request.GetResponse();
当我删除“dataStream.Write(isoBytes,0,isoBytes.Length);” 它没有给我一个错误。 我不知道我做错了什么。 如果你有更多的问题,请问我。提前谢谢

只是另外一个问题,在同一个问题中的一些答案是把安全协议

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768
                                               | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072;

如果发生此事件,它仍然会给出错误。

请尝试
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12WebRequest.Create
之前还是之后设置的?顺便说一下,您的代码有点奇怪,您没有使用
xx
变量。这也意味着您没有使用
byteArray
someGeneratedString
执行任何操作。请将其设置在webrequest.createTry
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12之前WebRequest.Create
之前还是之后设置的?顺便说一下,您的代码有点奇怪,您没有使用
xx
变量。这也意味着您没有使用
byteArray
someGeneratedString
执行任何操作。请在webrequest.create之前设置它