0
首先,这是我的第一篇关于堆栈溢出的文章。我一直在访问这个网站很长一段时间,从来没有真正问过一个问题,因为现有丰富的资源。我遇到的一个问题似乎有点难以找到正确的信息。如果我的帖子不合适,或者在发布之前有任何我应该考虑的事情,请告诉我。JSON和WCF Web服务
我正在为一个简单的Windows服务的WCF接口工作。这个想法是它将有两个可用的端点,一个TCP端点和一个使用JSON的HTTP端点。
我有WCF接口完成,所以我可以通过导航到正确的URL来测试它,并且一切似乎都很棒。对我来说有点困难的下一步是Java客户端的事情。我需要创建一个java类来与WCF服务接口。我可以使用URLConnection来调用GET,但是如何使用POST来解决这个问题?以下是服务合同的一个例子。
[ServiceContract]
public interface IPenguinWCF_JSON
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "listsigns/")]
string[] ListSigns();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "stopserver/")]
bool StopServer();
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "sendmessage")]
bool SendMessage(string signName, string zone, string text, bool scroll);
这是否需要客户端在安装了apache的计算机上运行?如果Java模块要在另一个系统或设备上使用,例如带有IIS,没有apache或黑莓的Windows系统,那该怎么办? – thepenguinmaster 2011-05-25 14:36:50
不,它不需要Apache Web服务器。名字中的“Apache”意味着它是Apache Software Foundation下的一个项目。所有需要的是JRE,以及发行版中包含的一些支持库。在Web上有许多使用HttpClient的简单教程。 – 2011-05-25 21:18:52
打开连接似乎很容易。让它正常工作并获得可消费的JSON响应还有一点点。我会发布我的结果。答案只是必需的一个非常基本的部分。打开与Web服务的连接是众所周知的。技巧在于内容类型和接受请求属性。谢谢你的回答,我很欣赏你的意见。 – thepenguinmaster 2011-06-07 21:58:05