我一直在编写简单的Java Server。我要将这段代码部署到我学生的服务器上并在那里运行。
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();
}
}
}
提前致谢
答案 0 :(得分:2)
如果您尝试从服务器提供RESTFul服务,这不是一件容易的事。您可能想要做的是使用Restlet来引导您的RESTFul服务器和客户端。
有关更多信息,请参阅http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet.html
答案 1 :(得分:2)
REST是一种在客户端和服务器之间进行通信的简单方法。 REST基本上说,即使在计算机程序之间进行通信时,也要按照它的使用方式使用HTTP。
如果您没有足够的知识,请阅读HTTP。这是一份好文件:http://www.jmarshall.com/easy/http/
了解如何在客户端和服务器上发送和接收HTTP消息后,您就可以开发RESTful服务器API了。
您需要了解的有关REST的一点是,在设计API时,它通常是一种思考方式。确保充分利用HTTP并以任何格式发送/接收数据(通常是JSON,XML或UrlEncoded键/值对)。
我会说你自己做这件事要比在学习REST的同时学习Restlet或其他一些大型图书馆好多了。 REST和HTTP都是简单的东西 - 一旦你开始“它只是一些文本返回和第四”。当你完全理解这些事情时,你可以看一些框架。
以下是有关REST的一些信息: http://rest.elkstein.org/