【问题标题】:WCF REST: Maximum number of strings which can be passed in a webInvoke method?WCF REST:可以在 webInvoke 方法中传递的最大字符串数?
【发布时间】:2011-03-31 23:33:13
【问题描述】:

下面是代码

我尝试了这个调用,但它没有工作......即使这个调用中的函数是空的,我也尝试了这个只有 5 个输入参数的确切函数调用,它有效吗? 这里有些可疑,希望有人可以提出建议,如果您有任何建议,我可以最小化此代码,这意味着参数传递我随时可以提出建议。

代码如下:

 [WebInvoke(UriTemplate = "customer/update/customerCode={customerCode}/customerName={customerName}/customerCountry={customerCountry}/customerTelephone={customerTelephone}/customerEmail={customerEmail}/customerCreditLimit={customerCreditLimit}/customerCommission={customerCommission}/customerRank={customerRank}/contactFullname={contactFullname}/contactBusinessPhone={contactBusinessPhone}/contactTimezone={contactTimezone}/contactActive={contactActive}/contactDepartment={contactDepartment}/contactHomePhoneExtension={contactHomePhoneExtension}/shipToCountry={shipToCountry}/shipToPaymentTerm={shipToPaymentTerm}/shipToCommissionPercent={shipToCommissionPercent}/shipToTruckSize={shipToTruckSize}/shipToTaxNumber={shipToTaxNumber}/shipToRouteCode={shipToRouteCode}/shipToOpenTime={shipToOpenTime}/shipToCloseTime={shipToCloseTime}", Method = "PUT", BodyStyle = WebMessageBodyStyle.Wrapped)]
        public void UpdateCustomer(string customerCode, string customerName, string customerCountry, string customerTelephone, string customerEmail,
                            string customerCreditLimit, string customerCommission, string customerRank, string contactFullname,
                            string contactBusinessPhone, string contactTimezone, string contactActive, string contactDepartment,
                            string contactHomePhoneExtension, string shipToCountry, string shipToPaymentTerm, string shipToCommissionPercent,
                            string shipToTruckSize, string shipToTaxNumber, string shipToRouteCode, string shipToOpenTime,
                            string shipToCloseTime)
        {
            // code or no code
        }

这就是我实现上述功能的方式:

using (HttpResponseMessage response = m_RestHttpClient.Put("customer/update/customerCode=CUST190/customerName=Ralph Lauren/customerCountry=United Kingdom/customerTelephone=1234567489/customerEmail=ralph@lauren.com/customerCreditLimit=1/customerCommission=5/customerRank=45/contactFullname=Diego Sin/contactBusinessPhone=911/contactTimezone=6/contactActive=True/contactDepartment=Sales/contactHomePhoneExtension=456/shipToCountry=Uganda/shipToPaymentTerm=NET30/shipToCommissionPercent=1/shipToTruckSize=50/shipToTaxNumber=777/shipToRouteCode=001/shipToOpenTime=10 am/shipToCloseTime=11pm", frm.CreateHttpContent()))
            {
                response.EnsureStatusIsSuccessful();
            }

谢谢

【问题讨论】:

    标签: c# rest wcf-rest


    【解决方案1】:

    你没有body参数,PUT需要body。

    除此之外,PUT 不等同于执行更新存储过程。不要尝试这样做,这没有任何意义。所有这些参数都需要进入正文。

    网址长度有物理限制,因此您可能会遇到问题。

    【讨论】:

    • 好的,请告诉我如何实现这一点,尤其是 Body 参数。你能告诉我一个简单的例子,比如说 4 个字段...... HttpContent 需要在哪里使用?最后,URL/URI 链接长度的物理限制是什么?或者它可以扩展..因为我在网络/微软中找不到任何合适的解决方案..非常感谢您的投入。谢谢
    • 我发现 260 个字符是 URI 字符串的最大限制...那么您对如何使用复杂类型实现这一点有什么建议吗?
    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    相关资源
    最近更新 更多