- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
免责声明:我确实详尽地搜索了这个问题的答案,是的,我确实找到了另一个问题:https://stackoverflow.com/questions/10315728/how-to-send-parameters-as-formparam-to-webservice .但首先,这个问题是关于 Javascript 的,而我是在问 Java,其次,它没有答案。那么问题...
使用 RESTful 服务,将 @QueryParam
传递给 @GET
服务相当容易,因为您只需将变量名称/值对附加到 URL 并使用它从程序中访问服务器。有没有办法用 @FormParam
来做到这一点?
例如,假设我有以下 RESTful 服务:
@POST
@Produces("application/xml")
@Path("/processInfo")
public String processInfo(@FormParam("userId") String userId,
@FormParam("deviceId") String deviceId,
@FormParam("comments") String comments) {
/*
* Process stuff and return
*/
}
... 假设我在我的程序中的其他地方还有另一种方法,如下所示:
public void updateValues(String comments) {
String userId = getUserId();
String deviceId = getDeviceId();
/*
* Send the information to the /processInfo service
*/
}
如何在第二种方法中执行注释掉的操作?
注意:假设这些方法不在同一个类或包中。还假设 RESTful 服务托管在与您运行方法所在的机器不同的服务器上。因此,您必须访问该方法并以 RESTful 方式传递值。
感谢您的帮助!
最佳答案
使用@FormParam,您可以将表单参数绑定(bind)到一个变量。您可以找到示例 here .
其次,为了从您的 java 方法代码内部调用 rest 服务,您将必须使用 jersey 客户端。可以找到示例代码 here .
您可以使用 jersey 客户端表单传递表单参数,如下所示。
创建表单
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(UriBuilder.fromUri("http://localhost:8080/api").build());
Form f = new Form();
f.add("userId", "foo");
f.add("deviceId", "bar");
f.add("comments", "Device");
将其传递给 Restful 方法。
service.path("processInfo").accept(MediaType.APPLICATION_XML).post(String.class,f);
关于java - 如何从另一种方法将 @FormParam 传递给 RESTful 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315778/
我有一个方法可以返回父记录的所有子记录(例如文档和行): public Datasource getSonsFromParent( @FormParam(value = "idparent") Lon
由于在此应用程序中动态创建 html 表单元素,因此元素的数量未知。如何使用@FormParam注解获取元素信息?例如,下面的代码获取两个表单元素的信息: @POST @Path("/
我的 html 中有以下内容 function myForm() { var url = 'rest/products/details/'; var fo
我将以下内容从浏览器传递到服务器 Status Code:204 No Content Request Method:POST Content-Type:application/x-www-form-
我正在使用最新版本的 Spring。我必须与A公司的第三方服务器集成。现在,A公司给了我这个代码: Path("/user") public class CallBacks { String
我正在使用 Indy10。我的服务器正在处理表单发布。 ARequestInfo.FormParams 正确包含未解析的表单参数。但是 ARequestInfo.Params.count 是 0。有没
我有 HTML 表单数据并被传递给 RESTful POST 方法。我注意到如果@FormParam 声明为 @POST public void commitProjects( @FormParam(
我正在为书籍和内容开发 Java“JAX-RS”Web 服务。将会有数百个类似的 URL ... https://api.example.com/v1.3/book1/chapter/1 https:
在 Java 中,我正在实现一个服务器,客户端可以在其中使用后查询传递一些数据(键值对)。我已经决定制作一个 REST 服务,并且我计划将 JAX-RS 与 Jetty 一起使用。 我之前不知道要发送
@FormDataParam 和@FormParam 有什么区别? 我在一个方法中使用了多个 @FormDataParam 但它抛出了媒体不支持的类型错误。但是当我使用 @FormParam 时,我得
谁能帮我解决这个问题。 我使用resteasy 和wildfly 8.1.0 创建了一个Web 服务,但@FormParam 总是返回null。 用户服务.java Path("/user") @Pr
因此,我在 Felix 框架内使用 Amdatu 来创建支持 OSGi 的 JSON Rest 服务。 当我使用@GET时,我得到了预期的id值 @GET @Produces(MediaType.AP
我正在制作一个REST客户端,它接收一个POST,其中包含用作查询的过滤器的数据。我的问题是当客户向我发送 "%" 来搜索所有值时。 Jersey 向我发送以下错误 11:36:35,857 ERRO
我正在使用 Java 和 Jersey 1.16。 @FormParam 参数的名称区分大小写吗?我可以以某种方式强制它不区分大小写吗? (希望以某种全局性的方式)。 最佳答案 您可以过滤请求: pu
我正在开发一个服务器端应用程序(不是客户端)。我有一个列表操作,其中使用 @GET 并将参数作为 @QueryParam 传递。我应该使用@FormParam 吗?对开发客户端有帮助吗? 最佳答案 @
我正在尝试通过 POST 向 RestAssured 端点提交一些 JSON。 API 需要一个 key 列表。我需要发送的值是一个包含单个项目的列表。 理想的请求如下: Request method
如果我有类似的东西: @PUT @Path("/login") @Produces({"application/json", "text/plain"}) @Consumes("application
我正在使用 Resteasy 学习 Web 服务 我正在做一个简单的基本示例,使用 @FormParam 轻松休息。我的示例在请求方法为 POST 时有效但是当我将请求方法更改为 GET 时不起作用
客户: 我确实像这样在 angular2 中发帖: doSelectMessagesAttributesUrl2(pushRequest : PushRequest) { console.in
免责声明:我确实详尽地搜索了这个问题的答案,是的,我确实找到了另一个问题:https://stackoverflow.com/questions/10315728/how-to-send-parame
我是一名优秀的程序员,十分优秀!