我正在尝试将JSON发布到WCF服务。json对象包含一个数组。我想知道如何正确绑定到我的数据合同。如果有人可以在这里给我指点,我将不胜感激。目前,我的购物车对象为null
我的服务界面如下所示:
public interface IService
{
[OperationContract]
[WebInvoke(UriTemplate = "/cart", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json)]
Ship GetShipInfo( Cart cart, string Website);
}
[DataContract]
public class Cart
{
[DataMember]
public Int32 ProductID { get; set;}
[DataMember]
public decimal ItemPrice { get; set; }
[DataMember]
public Int16 Qty { get; set; }
[DataMember]
public String SizeWidth { get; set; }
}
我的客户电话如下
客户电话
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Runtime.Serialization.Json;
using System.Net;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(string));
Cart cart = new Cart{ ProductID = 1000, ItemPrice = Convert.ToDecimal(32.50), Qty = 1, SizeWidth = “6M” };
WebClient Proxy1 = new WebClient();
Proxy1.Headers["Content-type"] = “application/json”;
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer serializerToUplaod = new DataContractJsonSerializer(typeof(Cart));
serializerToUplaod.WriteObject(ms, cart);
byte[] data = Proxy1.UploadData(“http://localhost:54897/IphoneService.svc/cart”, “POST”, ms.ToArray());
Stream stream = new MemoryStream(data);
obj = new DataContractJsonSerializer(typeof(Ship));
var Ship = obj.ReadObject(stream) as Ship;
}
public class Ship
{
public Decimal SecondDay { get; set; }
public Decimal NextDay { get; set; }
}
public class Cart
{
public Int32 ProductID { get; set; }
public Decimal ItemPrice { get; set; }
public Int16 Qty { get; set; }
public String SizeWidth { get; set; }
}
}
我的JSON看起来像这样
{"cart":
[
{"ProductID":2957,
"Qty":1,
"ItemPrice":60,
"SizeWidth":"5M"}
]
}
Fiddler对WCF REST方法的原始请求应如下所示:
POST http://localhost:54897/IphoneService.svc/cart HTTP 1.1
Content-Type: application/json
Host: localhost
{"cart":{"ProductId":1,"ItemPrice":60,"Qty":1,"SizeWidth":"5M"},"Website":"sample website"}
JSON中的响应如下所示:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 30
{"SecondDay":5.0, "NextDay":7.0}
问题内容: 寻找有关基于cf2010中的WCF REST模板40(CS)扩展的wcf 4 rest服务的指南。我花了最后两天的时间来尝试使该Bugger正常工作,并复习其他帖子,尽管我已经接近了,但似乎无法越过终点。经过很多挫败之后,它最终到达了服务并发布(使用fiddler请求构建器),但是method参数作为null出现,但已在请求构建器中正确设置。我猜这可能是配置问题,但是由于截止日期迫在眉
问题内容: 我正在尝试使用RestSharp发布以下JSON: 我想我已经接近了,但是我似乎在为 SecurityQuestion 苦苦挣扎(API抛出错误,表明缺少参数,但没有说明是哪个参数) 这是我到目前为止的代码: 我的安全问题类如下所示: 谁能告诉我我在做什么错?还有其他方法可以发布安全性问题对象吗? 非常感谢。 问题答案: 您需要在标题中指定content-type: 还根据方法添加到P
我正在做一个项目,我请求一个api发布一个项目的详细信息。下面是我试图使用HttpRequest插入body itemstr的代码 这是我的newItem类 我试图将itemStr作为一个主体发布到本地运行的restful API。我可以使用GET请求检索,但不能发布。
问题内容: 我已经开始尝试使用Django REST框架。到目前为止,我已经成功地为我的对象创建了一个序列化程序,通过Javascript的$ .post()创建了发布视图,发布对象和返回对象。因此,现在我可以在JSON和Django模型对象之间进行适当的转换。 问题是我有一个对象数组[A1,A2,…,An]。现在,当我需要发布这样的数组时,我逐个对象地进行处理。是否有可能一次发布整个数组,并在D
问题内容: 我试图通过使用REST,WCF和JSON(所有这些技术的新功能)使我的应用程序正常工作。我的“ GET”工作正常。是导致我出现问题的“ POST”。 正如您将在下面看到的那样,我使用JSON.stringify“打包” JSON,然后将POST启动到REST资源。但是,当对象进入处理请求的WCF方法时,该对象始终为null。 这是代码: 这是配置的东西: 这是合同: 这是实现上述接口的
我需要以这种格式发布一个对象: 我试过: 但是服务器返回了一个错误的请求。我认为数据的格式无效。 如何更改代码以将数据转换为正确的格式? 谢谢你!