httpwebrequest不支持指定的方法 - Silverlight

时间:2009-03-27 20:16:16

标签: silverlight httpwebrequest

我正在尝试在Silverlight 2.0中使用HttpWebRequest对象来执行“POST”。

从BeginGetStream方法返回后,我最终得到以下错误:

消息:“不支持指定的方法。”
StackTrace:“在System.Net.BHWRAsyncResult.get_AsyncWaitHandle()”

以下是一些示例代码:注意我已经使用了fiddler来查看是否有任何内容通过网络发送,并且没有网络活动。

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("http://someurl"));
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.Accept = "text/plain, */*";
        req.Headers["X-Requested-With"] = "XMLHttpRequest";

        AsyncCallback callBack = new AsyncCallback(streamResponse);

        req.BeginGetRequestStream(callBack, null);

谢谢, 戴夫

3 个答案:

答案 0 :(得分:4)

我刚刚找到了解决此问题的方案。 HTTP客户端需要知道Content-Length以填充Content-Length HTTP头值。客户无法在知道长度之前启动请求。当您获得RequestStream时,WebRequest无法知道您将向服务器发送多少字节。您必须关闭流以提交Content-Length并且仅在关闭RequestStream之后您可以调用BeginGetResponse。奇怪的是,这并没有在WebRequest中完成。 希望这可以帮助, 梅德

答案 1 :(得分:0)

我刚才遇到过这个问题。在我的头顶:

1)clientaccesspolicy.xml / crossdomain.xml不在您呼叫的服务器上。像闪光灯一样,silverlight不会与没有闪光灯的域名对话。

1.1)fiddler会记录404错误吗?如果没有,您将看不到Silverlight尝试获取这些策略文件的失败尝试。

2)如果不这样做,发送自定义标题可能会令人心烦意乱。

答案 2 :(得分:0)

http://support.microsoft.com/kb/225342

我也试图解决这个问题