首页 / JAVA / Java中的REST调用
Java中的REST调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中的REST调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2214字,纯文字阅读大概需要4分钟。
内容图文
我对在JAVA中进行的特定REST调用有一些疑问.我是新手,所以我从多个来源将其进行了整理.呼叫本身如下所示:
String src = AaRestCall.subTrackingNum(trackingNum);
Rest调用类如下所示:
public class AaRestCall {
public static String subTrackingNum (Sting trackingNum) throws IOException {
URL url = new URL("https://.../rest/" + trackingNum);
String query = "{'TRACKINGNUM': trackingNum}";
//make connection
URLConnection urlc = url.openConnection();
//use post mode
urlc.setDoOutput(true);
urlc.setAllowUserInteraction(false);
//send query
PrintStream ps = new PrintStream(urlc.getOutputStream());
ps.print(query);
ps.close();
//get result
BufferedReader br = new BufferedReader(new InputStreamReader(urlc
.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line=br.readLine())!=null) {
sb.append(line);
}
br.close();
return sb.toString();
}
}
现在,除了这有什么问题之外,我还有几个问题.
1)如果此rest调用返回的是JSON对象,那么是否会因为转到String而搞砸了?
2)解析返回的JSON的最佳方法是什么?
3)我不太确定如何格式化查询字段.我假设应该在REST API中进行记录?
提前致谢.
解决方法:
REST是一种应用在HTTP之上的模式.根据您的问题,在我看来,您首先需要了解HTTP(通常是chatty套接字协议)的工作方式以及Java API提供的处理方法.
您可以使用那里的任何Json库来解析HTTP响应主体(假设它是200 OK,您需要检查并还要注意HTTP重定向!),但这不是通常构建内容的方式.
如果该服务公开了真正的RESTful接口(与更简单的HTTP JSON相反),则需要使用四个HTTP动词,而URLConnection则不允许这样做.另外,您可能希望添加用于身份验证的标头,或者可能是cookie(实际上只是HTTP标头,但仍然值得单独考虑).因此,我的建议是使用Apache Commons的HttpClient或某些带有客户端支持的JAX-RS库(例如Apache CXF)来构建服务的客户端部分.这样,您将完全控制通信,同时还可以使用更好的抽象,而不必使用URLConnection提供的InputStream和手动序列化/反序列化参数/响应.
关于如何设置查询字段的格式,再次您首先需要掌握HTTP的基础知识.无论如何,确定的答案取决于远程服务的实现,但是您将面临四个选择:
>服务URL中的查询字符串
> HTTP请求的表单编码主体
> HTTP请求的主体(类似于前者,但不同的MIME类型足以使您头痛)-通常在也有网站的HTTP JSON服务中使用,并且可以使用相同的URL进行上传包含文件输入的表单
> HTTP主体的服务定义的编码(例如application / json或application / xml)(同样,它与前两点确实相同,但是不同的MIME编码意味着您必须使用不同的API)
内容总结
以上是互联网集市为您收集整理的Java中的REST调用全部内容,希望文章能够帮你解决Java中的REST调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。