本文目录一览:
- 1、java 调用 rest 接口 怎么写请求行的信息
- 2、java有哪些好用的REST框架
- 3、java的rest接口如何使用?要求用它做一个第三方控制已运行的java程序停止运行。不是很懂 求详解!
- 4、如何实现支持REST的Java Business Services
- 5、java中rest接口实现数据接收与转发
java 调用 rest 接口 怎么写请求行的信息
package com.demo;
import jaimg id=”selectsearch-icon” src=”” alt=”搜索”va.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.xml.bind.DatatypeConverter;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
public class restTest {
public static voidmain(String[] args) {
try {
DefaultHttpClient Client = newDefaultHttpClient();
HttpGet httpGet = newHttpGet(“你的地址”);
String encoding =DatatypeConverter.printBase64Binary(“admin:admin”.getBytes(“UTF-8”));
httpGet.setHeader(“Authorization”, “Basic ” +encoding);
HttpResponse response = Client.execute(httpGet);
System.out.println(“response =” + response);
BufferedReader breader = newBufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder responseString = newStringBuilder();
String line = “”;
while ((line = breader.readLine()) !=null) {
responseString.append(line);
}
breader.close();
String repsonseStr =responseString.toString();
System.out.println(“repsonseStr =” + repsonseStr);
} catch (IOException e) {
e.printStackTrace();
}
}
}
java有哪些好用的REST框架
1 Dropwizard
Dropwizard 提供了稳定成熟的Java库, 并封装成一个简单的轻量级的包。
Dropwizard 介于框架和库之间。它提供了一个开发web应用程序的全部所需。由于内置模块化,一个应用程序可以保持小而精干的特点,减少开发和维护的时间,减少负担。
Dropwizard 使用已有的 Jetty HTTP 库,嵌入到你的项目中,无需外部的server。所有的Dropwizard项目都有一个 main 方法来管理内建的 HTTP server.
2 Jersey
Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。
3 Ninja Web Framework
Ninja Web Framework是全栈的 java web framework。稳定, 快速, 可靠, 产品级.
它提供了开发,测试,发布,维护 RESTful web应用的一切(Servlets, Guice, JPA, Flyway migrations, Maven, etc.).
就像 DropWizzard, Ninja Web Framework 是一个集成的软件栈。你不必建立你自己的,只需使用 Maven archetype生成一个新的项目,导入到IDE中就可以开始编码了。
4
Play Framework
使用Play Framework 很容易地创建,构建和发布 web 应用程序,支持 Java Scala。它使用Akka, 基于一个轻量级的无状态的架构。它应该应用于大规模地低CPU和内存消耗的应用。
5
Spark Framework
不要和 Apache 的大数据框架 Spark 弄混, 这里的 Spark 框架是一个轻量级的 Java web 框架,用来进行快速的开发(50% Spark用户使用 Spark 创建 REST APIs)。 它受 Ruby 框架 Sinatra 启发。
它有一个不到1M的最小化的内核, 提供了所有基本的特性, 用来构建 RESTful 或者传统的 web 应用程序。
java的rest接口如何使用?要求用它做一个第三方控制已运行的java程序停止运行。不是很懂 求详解!
@Provider
@Produces(“application/json”)
@Consumes(“application/json”)
public class GsonProvider implements MessageBodyWriterObject,
MessageBodyReaderObject { private final Gson gson;
public GsonProvider() {
gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setDateFormat(
“yyyy-MM-dd”).create();
} public boolean isReadable(Class? type, Type genericType, Annotation[] annotations,
MediaType mediaType) {
return true;
} public Object readFrom(ClassObject type, Type genericType,
Annotation[] annotations, MediaType mediaType,
MultivaluedMapString, String httpHeaders, InputStream entityStream)
throws IOException, WebApplicationException {
return gson.fromJson(new InputStreamReader(entityStream, “UTF-8”), type);
} public boolean isWriteable(Class? type, Type genericType, Annotation[] annotations,
MediaType mediaType) {
return true;
} public long getSize(Object obj, Class? type, Type genericType,
Annotation[] annotations, MediaType mediaType) {
return -1;
} public void writeTo(Object obj, Class? type, Type genericType,
Annotation[] annotations, MediaType mediaType,
MultivaluedMapString, Object httpHeaders, OutputStream entityStream)
throws IOException, WebApplicationException {
entityStream.write(gson.toJson(obj, type).getBytes(“UTF-8”));
} }
如何实现支持REST的Java Business Services
下图显示了示例实现中的类。蓝色所示的类是框架外部的类,将它们放在这里是为了展示与框架的结构关系。
配置文件
配置文件 “rest-services-config.xml” 包含 REST 服务表示形式和相应的Java Action之间的映射,如下:
清单 1. REST 服务配置
以下是引用片段:
?xml version=”1.0″ ?
rest-config
rest-api id=”CreateUserProfile” uri=”/Registration/CreateUser” method=”POST”
handler id=”RegAction” class=”ws.registration.restactions.CreateProfile”/
/rest-api
rest-api id=”GetUserProfile” uri=”/Registration/GetUser” method=”GET”
handler id=”RegAction” class=” ws.registration.restactions.GetProfile”/
/rest-api
…
/rest-config
在该示例实现中,XML Binding服务实现在”rl-config.xml”文件中配置的框架配置文件如下所示。通过修改此文件实现的任何自定义实现都可以接入,只要实现了XMLBindingService接口。
清单 2:框架配置
以下是引用片段:
# XML Binding Implementation Service
# Default implementation
ws.rest.xmlbinding.service.impl=ws.rest.xmlbinding.service.impl.XMLEncDecServiceImpl
日志配置文件 “ws_log.properties” 指定log4j属性和日志文件的位置。这可以按需要作出适当修改。
Controller Servlet
RESTServiceServlet在web.xml中配置,处理所有具有上下文路径的请求,其中上下文路径的web-app/restservices/*如下所示:
清单 3:Servlet配置
以下是引用片段:
servlet
description/description
display-nameRESTServletService/display-name
servlet-nameRESTServletService/servlet-name
servlet-classws.rest.servlet.RESTServiceServlet/servlet-class
/servlet
servlet-mapping
servlet-nameRESTServletService/servlet-name
url-pattern/restservices/*/url-pattern
/servlet-mapping
REST Action
对于每个REST资源,例如 GetUserProfile,都将创建一个实现ActionInterface的相应动作类。该接口定义了动作类需要实现的 “doExecute(ActionContext ctx)” 方法。ActionContext提供服务,获取 REST 路径输入或查询参数,获取XMLBindingService实例并将XML输出发送到客户端,不公开Action的协议细节。PathInputs是一个包含路径值的List对象,路径值的顺序与它们在URL中指定的顺序相同。
清单 4:Action代码片段
以下是引用片段:
public class GetProfile implements ActionInterface {
public void doExecute(ActionContext context) throws Exception {
// Get the value from URL path
String userName = context.getPathInputs().get(0);
// Invoke backend service to retrieve user profile
UserProfileBean bean = getUser(userName);
// Serialize the bean using framework service and send response
String xml = context.getXMLBindingService().serialize(bean);
// Use the ActionContext to generate XML and
context.sendResponse(response, xml);
}
动作类负责使用超类中的XMLBindingService以XML形式生成输出。请查看示例实现的ws.registration.restactions.GetProfile类。ActionContext还可以提供协议特定的HttpServletRequest和HttpServletResponse对象,以防需要自定义处理。它还提供了Path值和URL参数。
XML Binding
该代码示例提供了一个Java XML Binding的实现,该实现使用java.beans.XMLEncoder和java.beans.XMLDecoder类。XML Binding服务实现接受一个JavaBean对象,并将其转换为上述Encoder和Decoder相应的XML表示形式。如果需要JAXB实现,那么可以开发一个实现 ws.rest.xmlbinding.service.XMLBindingService接口的实现类。
执行示例服务
示例代码分发包含示例WAR文件”RESTWS.war”,它可以部署在Tomcat容器中(已在Apache Tomcat版本6.0.20上进行了测试)。JDK要求是JDK 1.5以上。
成功部署该应用程序之后,在浏览器中输入URL:
图 5. 创建Profile Service输入
该页面调用REST服务
POST url-prefix/Registration/CreateProfile
您可以修改在 string/string 标记中指定的XML值。
注意:请注意XML结构依赖于JavaBean对象和Java使用的XML序列化技术。
提交时,动作类显示成功消息,表示后端服务的调用。可以查看 ws_log.log 文件调试消息。
图 6. 创建Profile Service输出
类似地,实现示例GET url-prefix/Registration/GetProfile/{username}服务以检索配置文件,如下图所示:
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
java中rest接口实现数据接收与转发
java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。
要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。
另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/182895.html