java - 我的 Java 服务器和本地客户端之间的通信

标签 java rest client communication

我一直在编写简单的 Java 服务器。我要把这段代码部署到我学生的服务器上并在那里运行。

public class Demo {

    public static void main(String[] args) {

        String port = "50000";

        ServerAttributes attr = new ServerAttributes();
        attr.setPort(Integer.parseInt(port));

        Socket socket = null;
        ServerSocket serverSocket= null;

        try {
            serverSocket = new ServerSocket(attr.getPort());
            System.out.println("Waiting for accept...");

            while(true) {
                socket = serverSocket.accept();
                // TODO

                socket.close();
            }

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

我想创建简单的客户端代码,它将与我的服务器“对话”。通信客户端->服务器很容易。我的服务器对客户端可见。但是我应该怎么做才能以另一种方式提供通信呢?

也许 REST 是个好主意?那么,我如何“教”我的服务器回答 REST 查询?

我有一段代码可以将数据发送到我的 GAE 服务器:

package enceladus.server.trash.rest;


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class RESTGAEServer {
    static String httpAddress = "http://*********.appspot.com/sign";

    public static void main(String[] args) {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(httpAddress);

        try {

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();


            nameValuePairs.add(new BasicNameValuePair("guestbookName", "default"));                     
            nameValuePairs.add(new BasicNameValuePair("content", "TEST"));

            post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            @SuppressWarnings("unused")
            HttpResponse response = client.execute(post);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

提前致谢

最佳答案

如果您尝试从服务器提供 RESTFul 服务,这不是一件容易的事。您可能想要做的是使用 ReSTLet 之类的东西来引导您的 RESTFul 服务器和客户端。

有关更多信息,请参阅 http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet.html

关于java - 我的 Java 服务器和本地客户端之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845176/

相关文章:

具有 IoT 中心触发器的 Java Azure 函数未启动

java - 我想将jpg图像转换为字节数组并将字节数组作为命令发送给java中的阅读器

java - 验证 JAX-RS 中 PUT、POST 方法的空主体请求

客户端 服务器 C 语言文件传输

c# - .net 中的高性能 TCP 客户端

java - CXF 3.0.7 中的 org.apache.cxf.jaxrs.client.WebClient 类

Java 泛型 : Functional-like max()

web-services - ResourceConfig 和应用程序

javascript - 回调参数之前的选项参数

java - 使用 JDBC 的简单客户端中间件模拟