java如何调用 json参数的webservice

hx_java 2012-08-15 11:04:00
RT,用java来后台调用,而不是ajax前台调用

例如;
http://localhost:8080/asdf/services/abcd{"name":"abc","pwd":"asdf"}

...全文
1483 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

还是不行啊,有没一些比较全面的demo之类的; 我在java后台模拟的HTTP请求,把相应json参数传递过去也达不到想要的效果,真是无语了; 难道就没人用过在java里边调用传json参数的webservice...
[/Quote]
不知道你具体什么意思

是像一楼那样,把你提供的URL
(http://localhost:8080/asdf/services/abcd{"name":"abc","pwd":"asdf"})
作为参数在java程序方法中处理得到其中的jason数据?

还是该URL在浏览器中输入,然后服务端获得客户端传来的jason数据?
nihuijun520 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
RT,用java来后台调用,而不是ajax前台调用

例如;
http://localhost:8080/asdf/services/abcd{"name":"abc","pwd":"asdf"}
[/Quote]


我现在也遇到这个问题,不知道你解决了没有?如果解决了是怎么做的?
hx_java 2012-08-22
  • 打赏
  • 举报
回复
还是不行啊,有没一些比较全面的demo之类的; 我在java后台模拟的HTTP请求,把相应json参数传递过去也达不到想要的效果,真是无语了; 难道就没人用过在java里边调用传json参数的webservice...
maobing8090 2012-08-17
  • 打赏
  • 举报
回复
ClientResponse 是jersey中的一个response类型com.sun.jersey.api.client.ClientResponse;clientParams 是你传递的url的参数,组合成 map传递

hx_java 2012-08-16
  • 打赏
  • 举报
回复
3楼可能没看清楚,我要的是在java里边调用,而不是用js调用..
hx_java 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

Json如果传参的时候不好传,那就转成其他类型的,然后再调用。
[/Quote]

这个接口主要是外部提供的,具体实现方式没见过,方法参数也不知道是怎么传的,人家给的例子就是:
http://localhost:8080/asdf/services/abcd
{
"name":"abc",
"pwd":"asdf"
}

...
hx_java 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

Client client = Client.create();
WebResource resource = client.resource(restfulURL);
然后 resource.queryParams(clientParams).get(ClientResponse.class),再转成jsonArray就可以得到你要的数据了
[/Quote]

ClientResponse是什么? clientParams是json字符串么?
maobing8090 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Client client = Client.create();
WebResource resource = client.resource(restfulURL);
然后 resource.queryParams(clientParams).get(ClientResponse.class),再转成jsonArray就可以得到你要的数据了
[/Quote]

补充一下,restfulURL就是你的那个webservice的url
maobing8090 2012-08-15
  • 打赏
  • 举报
回复
Client client = Client.create();
WebResource resource = client.resource(restfulURL);
然后 resource.queryParams(clientParams).get(ClientResponse.class),再转成jsonArray就可以得到你要的数据了
Sammie 2012-08-15
  • 打赏
  • 举报
回复
Json如果传参的时候不好传,那就转成其他类型的,然后再调用。
sust2012 2012-08-15
  • 打赏
  • 举报
回复
restful webservice 前台传一个json字符串,后天只要vo的属性名和json字符串的属性名一致的话,后天将直接将json的值封装到vo

前台
function sendJson() {
var id = $("#id").attr("value");
var userName = $("#userName").val();
var userPass = $("#userPass").val();
var jsonObj = {
"id" : id,
"userName" : userName,
"userPass" : userPass
};
jsonObj = JSON.stringify(jsonObj);
// var myData=$.toJSON(jsonObj);
// alert(myData);
var sendObj = {
url : "restful/userInfo/getUserList",
type : "post",
dataTyp : "json",
contentType : "application/json; charset=utf-8",
data : jsonObj,
success : function(data) {
alert(data);
jsonArray = data.user; //{user:[{},{}...{}]}
// responseJson = eval("("+responseJson+");");
// alert("length:"+responseJson.root.length);
var myTable = $("#myTable");
//获得最后一个row的id
var id = $("#myTable tr:last").attr("id");
id++;
//alert(id);
var newRow = "<tr id='"+id+"'><td align='center' width='200' colspan='2'>[id] [userName] [userPass]</td></tr>";
myTable.append(newRow);
$
.each(
jsonArray,
function(key, obj) {
id = $("#myTable tr:last").attr("id");
id++;
//alert(obj.id+":"+obj.userName+":"+obj.userPass);
newRow = "<tr id='"+id+"'><td align='center' width='200' colspan='2'>"
+ obj['id']
+ " "
+ $(obj).attr('userName')
+ " "
+ obj.userPass
+ "</td></tr>";
myTable.append(newRow);
});
},
error : function(e) {
alert("error");
}

};
$.ajax(sendObj);
}

后台
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("getUserList")
public List<User> getUsers(User user){
System.out.println("id:"+user.getId()+":"+user.getUserName());
DaoService dao = new UserDao();
List<User> userList = dao.getUserList();
return userList ;
}

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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