WCF Rest POST方法正在获取空json字符串
WCF Rest POST始终获取空字符串。我已经花了一个多星期的时间去探索,但到目前为止没有运气 我的服务代码:WCF Rest POST方法正在获取空json字符串,json,wcf,rest,Json,Wcf,Rest,WCF Rest POST始终获取空字符串。我已经花了一个多星期的时间去探索,但到目前为止没有运气 我的服务代码: [ServiceContract] public interface ISaveSurvey { [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
[ServiceContract]
public interface ISaveSurvey
{
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/SSS")]
bool InsertSiteSurveyInfo(string jsonString);
}
Web配置:
<compilation debug="false" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="Honeywell.HBS.SiteSurvey.SaveSurvey" behaviorConfiguration="SaveSurvey">
<endpoint address="" binding="webHttpBinding" contract="Honeywell.HBS.SiteSurvey.ISaveSurvey" behaviorConfiguration="wcfRestBehavior"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SaveSurvey">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="wcfRestBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<!-- Customizations for REST service -->
<webHttpBinding>
<binding name="ApiExportBinding" maxReceivedMessageSize="10485760"
maxBufferPoolSize="10485760" maxBufferSize="10485760">
<readerQuotas maxDepth="32" maxStringContentLength="10485760"
maxArrayLength="10485760" maxBytesPerRead="10485760" />
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
客户端代码:
<script type="text/javascript" language="javascript">
function testRest() {
$.ajax({
type: "POST",
dataType: "json",
url: "http://ie22ltjpsd4bs/SSTest/SaveSurvey.svc/SSS",
contentType: "application/json",
data: "{\"siteInformation\":{\"siteName\":\"Malar\",\"siteNumber\":\"123344555\",\"siteContactPerson\":\"test\",\"siteAddress\":\"test\",\"siteCity\":\"test\",\"sitePostalZipCode\":\"test\",\"siteTelephone\":1234576788,\"siteContractNumber\":\"asdfasdf\",\"siteHoneywellBranch\":\"asdfasdf\",\"siteFieldSiteLeader\":\"asdfasdf\",\"siteTeamLead\":\"asdfasdf\",\"siteTechnician\":\"asdfasdf\",\"equipments\":[{\"equipmentID\":\"BRANCH TOOL INVENTORY\",\"equipSiteContactTelephone\":12345678,\"equipDescription\":\"asdfasdf\",\"equipLocation\":\"asdfasdf\",\"equipSupervisionOrFrontEnd\":\"asdfasdf\",\"equipNumberOfStations\":12,\"equipMakeOrTypePC\":\"asdfasdf\",\"equipWindowsVersion\":\"asdfasdf\",\"equipManufacturer\":\"A C MOTOR\",\"equipManufacturerDateOrAge\":\"1979-12-31T18:30:00.000Z\",\"equipProductNameOrVersion\":\"asdfasdf\",\"equipGraphicSoftwareIncl\":\"No\",\"equipExistingSaveBackup\":\"Yes\",\"equipBackupSaveFormat\":\"\",\"equipLocalAccess\":\"asdfasdf\",\"equipPassword\":\"asdfasdfasdf\",\"equipRemoteAccess\":\"Modem\",\"equipAccessInfo\":\"asdfasdf\",\"equipSystemArchitecture\":\"Yes\",\"equipArchivedInAdept\":\"Yes\",\"equipOtherInformation\":\"asdfasdf\",\"controllersInformation\":[{\"controllerName\":\"asdfasdf\",\"controllerQuantity\":\"121\",\"controllerManufacturer\":\"asdfasdf\",\"controllerSoftwareProgram\":\"Yes\",\"controllerProductNameOrVersion\":\"asdfasdf\",\"controllerTypeOfProgram\":\"Interpreted\",\"controllerExistingSaveBackup\":\"Yes\",\"controllerBackUpSaveFormat\":\"\",\"controllerLocalAccess\":\"asdf\",\"controllerPassword\":\"asdf\",\"controllerRemoteAccess\":\"Modem\",\"controllerAccessInfo\":\"asdf\",\"controllerControlDrawings\":\"Yes\",\"controllerOperatingSequence\":\"Yes\",\"controllerOtherInformation\":\"asdfasddf\"}]}]}}",
success: function(result)
{
alert("Sucess");
},
failure: function(result)
{
alert("Failure");
}
});
}
function (result) {
}
</script>
函数testRest(){
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“http://ie22ltjpsd4bs/SSTest/SaveSurvey.svc/SSS",
contentType:“应用程序/json”,
数据:“{”站点信息“:{”站点名称“:”Malar“,”站点编号“:”123344555“,”站点联系人“:”test“,”站点地址“:”test“,”站点城市“:”test“,”站点邮政编码“:”test“,”站点电话“:”1234576788,,”站点合同号“:”asdfasdfasdf“,”站点霍尼韦尔牧场“:”asdfasdfasdf“,”sitedfarm“,”sitedfarm“,”sitedfarmeader:”asdf“,”sitedfarmeader“,”sitedfarmeader:”asdf“,”sitedfarmeader“,”asdf“,”sitedfarmeader“,”asdf“,”sitedfarmead“,”asdf“,”sitedfarmead“asdfasdf\“,”现场技术员\“:”asdfasdf\“,”设备\“:[{“设备ID\”:”分支工具库存\“,”设备站点联系电话\“:12345678,\”设备描述\“:”asdfasdf\“,”设备位置\“:”asdfasdf\”,”设备监控前端\“:”asdfasdf\“,”设备数量站\“:12,\”设备类型PC \“:”ASDFASDFASDFASDF\”,“设备版本\”\“,”EquipmentManufacturer\“:”A C电机“,”EquipmentManufacturerDateOrage\“:”1979-12-31T18:30:00.000Z\“,”EquipmentProductNameorVersion\“:”asdfasdf\”,”EquipmographicsoftwareIncl\“:”否“,”EquipmexistingSaveBackup\”:“是“,”EquipmbackupSaveFormat\”:”是“,”EquipmentAccess\“:”ASDFASDFASDFASDFDFDFDFDFDF\”,”设备密码“,”本地访问“,”远程访问“,”\“EquipmAccessInfo\”:“asdfasdf\”,“EquipmSystemArchitecture\”:“是”,“EquipmArchivedInAdept\”:“是”,“设备其他信息”:“asdfasdf\”,“ControllerInformation\”:[{“controllerName\”:“asdfasdf\”,“controllerManufacturer\”,“controllerManufacturer\”:“ASDFASDFASDF\”,“ControllersofWareProgram\”:“是”,“controllerName\”,“ControllerProduction\”:“ControllerVersion\”asdfasdf\“,”controllerTypeOfProgram\“:”解释的\“,”controllerExistingSaveBackup\“:”是“,”controllerBackUpSaveFormat\”:”是“,”controllerLocalAccess\“:”asdf\“,”controllerPassword\”:”asdf\“,”controllerRemoteAccess\“:”调制解调器\“,”controllerAccessInfo\”:“asdf\”,“controllerControlDrawings\:”是“,”操作人员:“,”是“,”控制器信息\“:\“asdfasddf \“}]}]}”,
成功:功能(结果)
{
警惕(“成功”);
},
失败:功能(结果)
{
警报(“故障”);
}
});
}
函数(结果){
}
按钮点击:
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" OnClientClick="testRest()" Text="Button" />
我附加了w3wp进程并尝试调试服务,json字符串总是为null。但是我使用fiddler截获了json字符串被发布的请求,而服务实现代码总是为null。这是计划中的行为。您的服务不知道如何映射您传递的数据。 如果要将json内容作为字符串传递,则应将其包装如下:
data: JSON.stringify({ jsonString: "your_data" })