当前位置: 首页 > 面试题库 >

WCF REST服务JSON发布数据

谭畅
2023-03-14
问题内容

寻找有关基于cf2010中的WCF REST模板40(CS)扩展的wcf 4
rest服务的指南。我花了最后两天的时间来尝试使该Bugger正常工作,并复习其他帖子,尽管我已经接近了,但似乎无法越过终点。经过很多挫败之后,它最终到达了服务并发布(使用fiddler请求构建器),但是method参数作为null出现,但已在请求构建器中正确设置。我猜这可能是配置问题,但是由于截止日期迫在眉睫,我没有时间进行更多研究。FWIW,在调试中,jsonstring变量为null。自我承认是一个菜鸟问题,因为这是我第一次通过REST,非常感谢您的帮助!

提前致谢。

web.config

<system.web>
  '<compilation debug="true" targetFramework="4.0" />
</system.web>

<system.webServer>
 <modules runAllManagedModulesForAllRequests="true">
   <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 </modules>
</system.webServer>

<system.serviceModel>
 <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
 <standardEndpoints>
   <webHttpEndpoint>
     <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
   </webHttpEndpoint>
 </standardEndpoints>
</system.serviceModel>

global.asax.cs

   public class Global : HttpApplication
  {
      void Application_Start(object sender, EventArgs e)
      {
         RegisterRoutes();
      }

      private void RegisterRoutes()
      {
         RouteTable.Routes.Add(new ServiceRoute("Scoring", new WebServiceHostFactory(), typeof(ScoringSvc)));
      }
   }

服务编号

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class ScoringSvc 
{
   [OperationContract]
   [WebInvoke
      (Method = "POST",
      BodyStyle = WebMessageBodyStyle.WrappedRequest,
      RequestFormat=WebMessageFormat.Json,
      ResponseFormat=WebMessageFormat.Json)]
   public string BOB(string jsonstring)
   {
      return "Received: " + jsonstring;
   }
}

提琴手请求标头

Host: localhost
Content-Length: 20
Content-Type: application/json; charset=UTF-8

请求主体

{"Name":"Frank"}

提琴手的原始回应

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 12
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 21 Mar 2011 21:31:14 GMT

"Received: "

问题答案:

偶然发现此链接WCF + REST:请求数据在哪里?并且看到Glenn的响应将流传递给该方法,然后使用streamreader将其撕成字符串以获取表单发布数据。

修改了原型服务代码如下

[OperationContract]
[WebInvoke
   (UriTemplate="/BOB",
    Method = "POST",
    BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public string BOB (Stream streamdata)
{
    StreamReader reader = new StreamReader(streamdata);
    string res = reader.ReadToEnd();
    reader.Close();
    reader.Dispose();
    return "Received: " + res;
}

这似乎可以解决问题,完整的json数组在流中传递,读入本地字符串,然后我可以使用json.net对其进行攻击,以将其序列化为/从字典序列化后再传递给业务逻辑。不是很漂亮,但是功能强大。



 类似资料:
  • 问题内容: 我必须将以下数据发送到URl的Web服务 要发送的数据格式为: 其中,和是键,并具有通过edittext字符串获取的相应值字符串。我在单击按钮时发布此数据。 我没有收到任何回应,因为我试图与我的合作开发者在他的iPhone相同的应用程序iPhone版本中与我的合作开发者进行反检查,因为服务器说用户名和密码无效。 我的课是: 请协助我,我是JSON和Android.Thanx解析的新手。

  • 问题内容: 我正在尝试将JSON对象发布到asp.net Web服务。 我的json看起来像这样: 我正在使用json2.js对我的json对象进行stringyfy。 我正在使用jQuery将其发布到我的Web服务。 我收到以下错误: “无效的JSON原语: 我发现了一堆与此相关的帖子,这似乎是一个非常普遍的问题,但我没有尝试解决此问题。 当萤火虫被发布到服务器时,它看起来像这样: marker

  • hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函

  • 更新时间:2019-05-30 16:03:18 服务开发、调试完成后,需发布到云端,才能被调用。 操作步骤 在服务开发平台,单击页面右上角发布。 在弹出对话框中,填入描述信息后,单击确定。 执行结果服务发布后,IoT Studio为该服务生成默认访问域名。您便可在其他应用开发时使用该服务,或将服务进行商业化使用。 选择页面正上方**发布 > 域名管理**,查看默认域名,或配置自定义域名。

  • 问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。

  • 问题内容: 我有这个JSON字符串。我想将其发布到服务器(即使用POST方法)。如何在Android中完成? JSON字串: 如何形成此JSON数组并将其发布到服务器? 问题答案: 我自己做的。 这就是我们如何将JSON数据发送到服务器。