我正在尝试将C# Cloudinary API移植到Mono,并且在构建HTTP请求时遇到一些问题。我已经将此方法单独分离出来设置请求,但在Mono中 HttpWebRequest.ContentLength 的值为-1,但在.NET中则可以正常构建内容。我正在Mac上运行最新的Xamarin Studio,并且正在构建一个MONO/.NET 4.0库
Mono版本:2.10.12
编辑:简化代码,此测试在Visual Studio中通过,但在Xamarin Studio中失败。
编辑:代码已推送至github,如果有人愿意帮助。
编辑:简化代码,此测试在Visual Studio中通过,但在Xamarin Studio中失败。
编辑:代码已推送至github,如果有人愿意帮助。
[Test]
public void StreamTest()
{
var request = System.Net.HttpWebRequest.Create("http://foo.com");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var writer = new System.IO.StreamWriter(request.GetRequestStream()))
{
writer.Write("anything");
}
Assert.IsTrue(request.ContentLength > 0);
}
ContentLength
不是Stream的属性,而是HttpWebRequest的属性。实现差异可能在于HttpWebRequest。 - I4V