C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 从.NET发送HttpWebRequest到php站点时出错大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尽管尝试了很多东西(见下文),但我无法摆脱“要写入流的字节超过指定的内容长度字节大小”.抛出的错误

writer.Close();

这是尝试将数据从ASP.NET发布到PHP站点代码.只要代码中没有特殊字符,脚本就可以正常工作 – 请注意’Wörld’中的德语变音符号.

Uri uri = new Uri("http://mydomain/test.PHP");
String data = @"data=Hello Wörld";

httpWebrequest request = (httpWebrequest)httpWebrequest.Create(uri);
request.Method = WebrequestMethods.http.Post;
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
StreamWriter writer = new StreamWriter(request.GetrequestStream()); 
writer.Write(data);
writer.Close();
httpWebResponse response = (httpWebResponsE)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream()); 
String tmp = reader.ReadToEnd();
response.Close();
Response.Write(tmp);

我尝试过使用UTF-8编码的不同变体,例如:

request.ContentLength = System.Text.Encoding.UTF8.GetByteCount(data);

和/或

StreamWriter writer = new StreamWriter(request.GetrequestStream(),Encoding.UTF8);

我也尝试在发送之前将数据转换为UTF-8(有点难看):

data = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Convert(System.Text.Encoding.UTF8,System.Text.Encoding.UTF8,System.Text.Encoding.UTF8.GetBytes(data)));

错误仍然存​​在.我的感觉是我没有正确处理UTF-8.非常感谢任何帮助,也有任何提示,我可以找到一个从ASP.NET(服务器端)发布到PHP的完美工作脚本.

解决方法

使用

byte[] bdata = Encoding.UTF8.GetBytes(data);

request.ContentLength = bdata.Length;

Stream writer = request.GetrequestStream(); 
writer.Write(bdata,bdata.Length);
writer.Close();

大佬总结

以上是大佬教程为你收集整理的c# – 从.NET发送HttpWebRequest到php站点时出错全部内容,希望文章能够帮你解决c# – 从.NET发送HttpWebRequest到php站点时出错所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。