【问题标题】:JSON and WCF Web serviceJSON 和 WCF Web 服务
【发布时间】:2011-05-23 14:36:56
【问题描述】:

首先,这是我关于堆栈溢出的第一篇文章。我已经访问这个网站很长时间了,由于已经有丰富的资源,我从来没有真正问过问题。我遇到的一个问题似乎有点难以找到正确的信息。如果我的帖子不合适,或者在发布之前有什么我需要考虑的地方,请告诉我。

我正在为一个有点简单的 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);

【问题讨论】:

    标签: java wcf json rest


    【解决方案1】:

    您可以使用Apache HttpClient library 编写客户端。

    【讨论】:

    • 这是否需要客户端在安装了 apache 的计算机上运行?如果 Java 模块要在另一个系统或设备上使用,例如带有 IIS 且没有 apache 的 windows 盒子或黑莓机,该怎么办?
    • 不,它不需要 Apache Web 服务器。名称中的“Apache”只是意味着它是 Apache 软件基金会下的一个项目。所需要的只是一个 JRE,以及分发中包含的一些支持库。网上有很多使用 HttpClient 的简单教程。
    • 打开连接似乎很容易。要让它正常工作并接收可消耗的 JSON 响应,还有更多工作要做。我会发布我的结果。答案只有一个非常基本的部分。打开与 Web 服务的连接是众所周知的。诀窍在于内容类型和接受请求属性。感谢您的回答,非常感谢您的意见。
    猜你喜欢
    • 2012-01-09
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多