Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用参数调用RESTful Web服务_Java_Web Services_Rest_Parameter Passing - Fatal编程技术网

Java 使用参数调用RESTful Web服务

Java 使用参数调用RESTful Web服务,java,web-services,rest,parameter-passing,Java,Web Services,Rest,Parameter Passing,我有一个简单的RESTful web服务,打印“Hello World!” 我正在使用NetBeans,代码如下所示: package resource; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.Consumes; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.GET; imp

我有一个简单的RESTful web服务,打印“Hello World!” 我正在使用NetBeans,代码如下所示:

package resource;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;


@Path("simple")
public class SimpleResource {

    @Context
    private UriInfo context;

    /** Creates a new instance of SimpleResource */
    public SimpleResource() {
    }

    @GET
    @Produces("application/xml")
    public String getXml() {
        //TODO return proper representation object
        return "<greeting>Hello World !</greeting>";
    }

    @PUT
    @Consumes("application/xml")
    public void putXml(String content) {
    }
}
包资源;
导入javax.ws.rs.core.Context;
导入javax.ws.rs.core.UriInfo;
导入javax.ws.rs.Consumes;
导入javax.ws.rs.PUT;
导入javax.ws.rs.Path;
导入javax.ws.rs.GET;
导入javax.ws.rs.products;
@路径(“简单”)
公共类SimpleResource{
@上下文
私有信息上下文;
/**创建SimpleResource的新实例*/
公共SimpleResource(){
}
@得到
@生成(“应用程序/xml”)
公共字符串getXml(){
//TODO返回正确的表示对象
返回“你好,世界!”;
}
@放
@使用(“应用程序/xml”)
公共void putXml(字符串内容){
}
}
我从这个URL调用这个web服务:
http://localhost:8080/WebService/resources/simple
。 现在,我想向这个web服务发送一个参数,然后在“Hello world”消息之后打印这个参数

我们怎么能做到呢


谢谢

尝试添加如下路径注释:

@javax.ws.rs.Path(“/bookstore/books/{bookId}”)
@GET
@Path("/search")
public String getUserDetailsFromAddress(
              @QueryParam("name") String name) {
  return "Hello"+name;
}
http://localhost:8080/searchapp/mysearch/search?name=Tom

在REST中处理参数的两种主要方法是通过解析路径和提取查询部分

路径参数 它们处理这种情况-
/foo/{fooID}
-其中
{fooID}
是一个模板,将由所需的参数替换:

@GET
@Produces("text/plain")
@Path("/foo/{fooID}")
public String getFoo(@PathParam("fooID") String id) {
    // ...
}

这些对于您可以考虑描述资源的参数非常有用。

查询参数 它们处理这种情况-
/?foo=ID
-就像处理传统表单一样:

@GET
@Produces("text/plain")
@Path("/")
public String getFoo(@QueryParam("foo") String id) {
    // ...
}

这些对于你认为参数描述的是资源的附属而不是资源本身来说是很好的。

@FormParam
注释非常相似,只是它用于处理已发布的表单,而不是用于获取样式参数

其他类型的参数
JAX-RS规范还支持其他类型的参数处理(矩阵参数、头参数、cookie参数),这些参数对程序员的工作方式大致相同,但使用起来更为罕见或专业。开始探索细节的一个合理位置是URl本身,因为它有有用的链接。

在URl中接受参数的web服务的示例代码如下所示:

@javax.ws.rs.Path(“/bookstore/books/{bookId}”)
@GET
@Path("/search")
public String getUserDetailsFromAddress(
              @QueryParam("name") String name) {
  return "Hello"+name;
}
http://localhost:8080/searchapp/mysearch/search?name=Tom
URL如下所示:

@javax.ws.rs.Path(“/bookstore/books/{bookId}”)
@GET
@Path("/search")
public String getUserDetailsFromAddress(
              @QueryParam("name") String name) {
  return "Hello"+name;
}
http://localhost:8080/searchapp/mysearch/search?name=Tom

我们如何在getXml()中打印bookId请?谢谢Donal,但我仍然可以提取“fooID”参数并打印它,例如?我的示例代码提取并解码参数,并将其作为参数传递给方法,无论使用哪种样式。你所要做的就是写下决定如何使用它的代码;出于演示目的,使用一点样板文件将它连接在一个字符串中并返回它会很好。当然你可以写这一点吗?谢谢,这真的很有帮助Donal只有一件事,对于我的应用程序URL,这一个会正常工作吗@穆罕默德:是的。您可能需要在
@Path
注释中使用更长的值来描述要解析的路径,但它实际上非常简单。只需编写路径,标记要填充的插槽以便为其命名,然后使用
@PathParam
将名称绑定到参数。