在WCF服务中使用C#的json?

Vac*_*ano 1 c# wcf json xml-rpc

我正在考虑将SMS功能添加到我的WCF服务.我找到了一个名为Penny SMS的廉价短信服务.

他们的界面支持json.但我不知道如何在我的WCF服务中调用它.

这是接口/示例:

示例JSON-RPC请求

{ "method": "send",
  "params": [
            "YOUR_API_KEY",
            "msg@mycompany.com",
            "5551231234",
            "Test Message from PENNY SMS"
            ]
}
Run Code Online (Sandbox Code Playgroud)

如何从WCF服务使用C#调用它?我正在寻找的是一种将其包装到方法调用中的方法.就像是:

StaticSMSClass.SendSMS("1234567890", "My Message to send");
Run Code Online (Sandbox Code Playgroud)

请注意,如果C#更可行,它们也支持XML-RPC API.

更新:我自己创建了一个电话,但它没有用.我将在一个单独的问题中发布我的尝试,看看是否有人有办法做到这一点.

dri*_*iis 5

您需要将带有JSON消息的HTTP POST发送到远程服务器.您可以使用HttpWebRequest执行此操作.您可以手动构建JSON(消息看起来很简单),也可以为它定义类型并使用JSON序列化程序.

MSDN有一个例子,对于你的情况,它看起来像(未经测试):

string json = // Your JSON message
WebRequest request = WebRequest.Create ("http://api.pennysms.com/jsonrpc");
request.Method = "POST";
var postData = Encoding.UTF8.GetBytes(json);
request.ContentLength = postData.Length;
request.ContentType = "text/json";
using(var reqStream = request.GetRequestStream()) 
{
    reqStream.Write(postData);
}
using(var response = request.GetResponse())
{
    // Response status is in response.StatusCode
    // Or you can read the response content using response.GetResponseStream();
}
Run Code Online (Sandbox Code Playgroud)