如何访问json接口的服务

angel518 2017-05-19 04:28:08
最近负责开发一个程序,要访问服务端(是用RESTful)提供的服务,采用JSON格式交换数据。比如要访问一个方法getEmployeeByName,参数有id、param,其中id是一个字符串,param是要求转换为json格式,比如param有数据 department
name两个字段;该方法返回name、age、birthday、telephone等信息, 要实现这样的功能,请问有哪位能提供下学习的代码
...全文
492 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33886281 2017-05-22
  • 打赏
  • 举报
回复
引用 10 楼 angel518 的回复:
[quote=引用 9 楼 qq_33886281 的回复:] [quote=引用 7 楼 angel518 的回复:] [quote=引用 6 楼 qq_33886281 的回复:] 就是简单的http请求吧 把参数传过去 然后返回json字符串 把字符串处理一下就可以了 很多ajax请求的http请求实际上就是这种格式
有没有源码参考下呢[/quote] 这是我调用 rabbitmq 的resetful接口 使用定时器监测队列状态的一个基础类 返回的就是json对象 把前后[]符号去除掉 然后使用项目的工具类jsonObject构造就可以了[/quote] 1、json这种远程调用应该和webservice一样吗,只是数据格式一个是json,一个是xml的? 2、restful开发的服务端接口,客户端不一样非要用java来调用吧,用c也是可以的吧?[/quote] 这只是http请求 返回的格式没有xml json的区别 有的只是字符 数据流 图片 这些在http请求头中的content-type中限定了都 最直接的请求方式是用浏览器 来获取,json和xml之类其实虽然content-type不同,但是这个不同主要是让给浏览器解析用的,反正都是字符串 你用f12 打开浏览器控制台 然后打开network 查看的请求的request response相应参数以及实际响应 你可以深入了解了 这和语言无关 就像大多数语言都可以提供一个做爬虫请求的类 如java的httpclient python的urllib urlilb 核心在于http请求
angel518 2017-05-22
  • 打赏
  • 举报
回复
引用 9 楼 qq_33886281 的回复:
[quote=引用 7 楼 angel518 的回复:] [quote=引用 6 楼 qq_33886281 的回复:] 就是简单的http请求吧 把参数传过去 然后返回json字符串 把字符串处理一下就可以了 很多ajax请求的http请求实际上就是这种格式
有没有源码参考下呢[/quote] 这是我调用 rabbitmq 的resetful接口 使用定时器监测队列状态的一个基础类 返回的就是json对象 把前后[]符号去除掉 然后使用项目的工具类jsonObject构造就可以了[/quote] 1、json这种远程调用应该和webservice一样吗,只是数据格式一个是json,一个是xml的? 2、restful开发的服务端接口,客户端不一样非要用java来调用吧,用c也是可以的吧?
qq_33886281 2017-05-22
  • 打赏
  • 举报
回复
引用 7 楼 angel518 的回复:
[quote=引用 6 楼 qq_33886281 的回复:] 就是简单的http请求吧 把参数传过去 然后返回json字符串 把字符串处理一下就可以了 很多ajax请求的http请求实际上就是这种格式
有没有源码参考下呢[/quote] 这是我调用 rabbitmq 的resetful接口 使用定时器监测队列状态的一个基础类 返回的就是json对象 把前后[]符号去除掉 然后使用项目的工具类jsonObject构造就可以了
qq_33886281 2017-05-22
  • 打赏
  • 举报
回复
public class RESTAMQPCheck {
	private static final String USERNAME = "admin";
	private static final String PASSWORD = "123456";
	private static final String URL = "";

	public static void main(String[] args) throws UnsupportedEncodingException {
		HttpResponse response = null;
		int statusCode = 0;
		try {
			DefaultHttpClient Client = new DefaultHttpClient();
			HttpGet httpGet = new HttpGet(URL);
			String up = USERNAME + ":" + PASSWORD;
			String credentials = new BASE64Encoder().encode(up
					.getBytes("UTF-8"));
			httpGet.addHeader("Authorization", "Basic " + credentials);
			response = Client.execute(httpGet);
			BufferedReader breader = new BufferedReader(new InputStreamReader(
					response.getEntity().getContent()));
			StringBuilder responseString = new StringBuilder();
			String line = null;
			while ((line = breader.readLine()) != null) {
				responseString.append(line);
			}
			breader.close();
			Client.close();
			String responseStr = responseString.toString().substring(1,
					responseString.length() - 1);
			String[] strings = responseStr.split("\\},\\{");
			strings[0] = strings[0] + "}";
			for (int i = 1; i < strings.length - 1; i++) {
				strings[i] = "{" + strings[i] + "}";
			}
			strings[strings.length - 1] = "{" + strings[strings.length - 1];
			System.out.println(strings);
			JSONObject jsonObject = null;
			for (String s : strings) {
				jsonObject = new JSONObject(s);
				System.out.println(jsonObject.getString("name"));
				System.out.println(jsonObject.getInt("messages"));
			}
			System.out.println(responseStr);
		} catch (Exception e) {
			System.out.println("Could not connect to " + URL);
			e.printStackTrace();
		}
		// 响应码大于299要么代表错误,要么就是发送给客户端额外的指令
		if (statusCode > 299) {
			System.out.println("Critical:Broker not alive:" + statusCode);
		}
		System.out.println("OK! Connect to " + URL + " successful ");
	}
}
angel518 2017-05-22
  • 打赏
  • 举报
回复
引用 6 楼 qq_33886281 的回复:
就是简单的http请求吧 把参数传过去 然后返回json字符串 把字符串处理一下就可以了 很多ajax请求的http请求实际上就是这种格式
有没有源码参考下呢
qq_33886281 2017-05-22
  • 打赏
  • 举报
回复
就是简单的http请求吧 把参数传过去 然后返回json字符串 把字符串处理一下就可以了 很多ajax请求的http请求实际上就是这种格式
angel518 2017-05-22
  • 打赏
  • 举报
回复
有没有哪位大神能解惑
angel518 2017-05-20
  • 打赏
  • 举报
回复
引用 1 楼 chifan1100 的回复:
有专门的jar包,可以把List<Entity> 转成json。
请用个有代码是示例说吧,比如怎么连上服务器、怎么调用,至于json转换倒是网上可以搜索到的
chifan1100 2017-05-20
  • 打赏
  • 举报
回复
有专门的jar包,可以把List<Entity> 转成json。
angel518 2017-05-20
  • 打赏
  • 举报
回复
引用 3 楼 chifan1100 的回复:
客戶端,用什么语言?
用java、c这两种分别如何实现
chifan1100 2017-05-20
  • 打赏
  • 举报
回复
客戶端,用什么语言?

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧