2008-09-29 49 views
7

我需要接受表單數據到基於WCF的服務。這裏的接口:通過HTTP接受表單字段在WCF中發佈

[OperationContract] 
[WebInvoke(UriTemplate = "lead/inff", 
    BodyStyle = WebMessageBodyStyle.WrappedRequest)] 
int Inff(Stream input); 

這裏的實現(樣本 - 沒有錯誤處理和其他保障):

public int Inff(Stream input) 
{ 

    StreamReader sr = new StreamReader(input); 
    string s = sr.ReadToEnd(); 
    sr.Dispose(); 

    NameValueCollection qs = HttpUtility.ParseQueryString(s); 
    Debug.WriteLine(qs["field1"]); 
    Debug.WriteLine(qs["field2"]); 

    return 0; 
} 

假設WCF,有沒有更好的方式來做到這一點,除了分析輸入流?

回答

5

我記得在DevLink上與你談過這件事。

由於您必須支持表單域,因此獲取這些內容的機制(您目前正在執行的操作)不會更改。

一些可能有用的東西,特別是如果您想要爲不需要表單域的新應用程序重新使用服務時,可以創建一個通道來解構流並將其重新打包爲XML/JSON/SOAP /不管讓表單客戶端通過該服務與服務進行通信,而不使用表單的客戶端可以使用另一個通道堆棧。只是一個想法...

希望有所幫助。如果您需要渠道幫助,請隨時通知我。

+0

詹姆斯 - 感謝您的信息!關於研究wcf頻道... – BryanB 2008-10-07 02:49:00

0

您可以使用jquery序列化您的表單字段,並將其作爲json請求打包爲wcf服務。