可移植类库与 WebRequest.ContentLength

8
我有一个便携式类库,以“.NET适用于Windows Store应用程序”和“Windows Phone 7.5或更高版本”为目标。我进行HTTP POST请求,截至上周,负责后端的管理员决定我需要发送长度为0的ContentLength,而不是.NET默认的-1。我使用WebRequest类,但如果需要可以灵活地使用HttpWebRequest。

通常,我会只使用WebRequest.Create并设置ContentLength属性。在PCL库中,ContentLength属性不可用。如果我尝试添加一个键为“Content-Length”的Header,则框架会抱怨我应该使用ContentLength属性。

您有什么想法,如何在PCL中设置ContentLength?


2
如果你在BeginGetRequestStream()和EndGetRequestStream()之间什么都不写,会发生什么?它应该是一个长度为0的流(并且可能会强制头中的ContentLength)。 - Adriano Repetti
你能把那个作为答案吗?那实际上解决了我的问题。 - sidney.andrews
1个回答

11
如果您无法设置ContentLength属性,但必须将其设置为0,则可以尝试调用GetRequestStream(或BeginGetRequestStram后跟EndGetRequestStream),而不向Stream本身写入任何内容,这应该会将ContentLength属性更新为其实际值(0,因为没有写入任何内容)。

1
我花了一些时间来弄清楚这个问题。感谢你的回答!解决方案有时候是如此简单 :-). - Rob Angelier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接