当前位置: 代码迷 >> Web Service >> wcf rest 接收 表单数据的有关问题
  详细解决方案

wcf rest 接收 表单数据的有关问题

热度:997   发布时间:2012-07-28 12:25:13.0
wcf rest 接收 表单数据的问题
我写了一个
wcf rest的服务

今天公司项目的外包公司反应说
无法通过
  <form id="form1" runat="server" action="XXXXXXXXX">
  <div>
  <input type="hidden" id="mid" value="5" />
  <input type="hidden" id="property" value="Email" />
  <input type="submit" value="搜索" />
  </div>
  </form>
的方式来调用 服务
可以使用JsonPost的方式来调用 是没问题的,但是对方希望通过form标签或者java后台的Http Request方式来实现,
请问怎么处理,
C# code

        [WebInvoke(UriTemplate = "/Member/Info",
                    BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = "POST")]
        public string GetUserInfo(string mid,string property)
        {
            string result;
            MemberBusiness business = new MemberBusiness();
            result = business.GetUserInfo(mid, property);
            return result;
        }




------解决方案--------------------
是用JAVA调用WCF么

其实就2个方法GET 和POST

你这个方法只能接收POST的请求

改为GET就应该好了Method = "GET",或者完全不写方法,就是GET了

只要你能在C#的程序用get方法请求,JAVA的后台就应该能通过了

------解决方案--------------------
那么服务端直接从 HttpRequest 里取吧,服务设计无参数。


------解决方案--------------------
post提交需要从httpServletRequest中拿到paramMap(),get方式就直接在httpServletRequest中了,直接通过.get拿
------解决方案--------------------
给你个例子,是从我做的系统中抽出来的,用Jason Format Serialized.

C# code


[OperationContract, WebGet(UriTemplate = "/Customers/{cityID}", ResponseFormat = WebMessageFormat.Json)]
Customer[] GetCustomers(string cityID);