我寧願避免討論HTTP動詞PUT和DELETE是否合適或過時,並着重討論實際使Silverlight在「強制」時使用的問題這些動詞。如何使HTTP PUT和DELETE在Silverlight 4中工作
我正在嘗試創建一個Silverlight 4客戶端應用程序,該應用程序調用具有PUT和DELETE動詞操作的現有REST Web服務。這項服務不會改變。
我添加以下語句到構造函數在我App.xaml.cs:
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
服務都有一個包含clientaccesspolicy.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
我現在用的是WebClient類來處理GET和POST請求。當我試圖對動詞/方法使用PUT或DELETE時,我得到一個模棱兩可的「安全錯誤」,這導致我添加上面的語句。
我見過各種帖子和博客文章,談論如何使用HttpWebRequest來解決這個問題,但還沒有找到一個實際上顯示如何從Silverlight客戶端進行這些(異步)調用的方法。
如果上面的代碼有問題,請告訴我。否則,如果您可以向我展示或向我指出一個演示如何實現這些請求的示例,我將非常感謝幫助。
或許,如果你確實向我們展示了 「代碼」,它使用的HttpWebRequest – AnthonyWJones