java - 在 Android Java 中从客户端使用 GET\POST 调用服务器方法

标签 java android client-server android-volley

我正在寻找一种从服务器(用 Java 编写的亚马逊 ec2 实例)中的 Android 客户端(用 Java 编写)调用方法的方法。我正在寻找类似 play 框架的东西,我可以在其中编写带有方法名称的 GET 请求(比方说,calculateHighScore),并在 paths.config 中设置 get 方法以从服务器执行calculateHighScore 方法。

我已经阅读了有关 volley 及其通过 JSON 进行通信的方式,但仍然不明白我应该在服务器端编写什么来执行特定方法并返回适当的响应。

最佳答案

您可以尝试使用Jersey RESTful 服务库。

例如,在您的服务器上,您可以有一些如下代码:

@Path("/your_class")
public class YourClass {
    [...]
    @POST
    @Path("/your_method")
    @Consumes(MediaType.TEXT_PLAIN)
    @Produces(MediaType.APPLICATION_JSON)
    public ArrayList<Object> yourMethod(String input){
        [...]
        return new ArrayList<Object>();
    }
}

在客户端,您可以使用如下代码:

[...]
ServiceFinder.setIteratorProvider(new AndroidServiceIteratorProvider());
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
clientConfig.getClasses().add(JacksonJsonProvider.class);
Client client = Client.create(clientConfig);

WebResource webResource = client.resource("http://yoursite.net:8080/NameOfService/rest/your_class/your_method");
ClientResponse response = webResource.accept("application/json").post(ClientResponse.class,"your input");
ArrayList<Object> list = response.getEntity(new GenericType<ArrayList<Object>>() {});
[...]

还有this是一个很好的教程,可以帮助您使用 Jersey 及其库。

关于java - 在 Android Java 中从客户端使用 GET\POST 调用服务器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496662/

相关文章:

java - Android 应用程序和 (Android) 库存档

java - 如何加粗形状的边框

C++ [UDP] 如何跟踪服务器上所有已连接(客户端)的套接字连接?

android - Firebase 实时数据库应用程序在离线时执行许多操作后回到在线时卡住

android - 在 Kotlin 中将值从 Activity 传递到 Fragment

c-客户端服务器套接字编程-发送文件

mysql - 客户端->服务器时差和时间存储

java - 将内部类对象作为函数参数传递

java - 使用java从domino获取rtf字段以获取JSON

java - Android Studio错误R.java