【发布时间】:2016-03-27 14:13:55
【问题描述】:
我想通过 Spring api 将数据从我的 android 客户端发送到我的 Restful Spring Web 服务,但我得到了以下例外,有人可以帮助我吗? 例如我想在我的服务器上注册一个用户,在我的服务器端我有这样的注册方法:
@RequestMapping(value = "/register")
public boolean registerNewUser(@RequestParam(name = "user")User user){
if(user!=null){
try {
SessionFactory sessionFactory=HibenateConnection.connectingHibernate();
Session session=sessionFactory.openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
session.close();
return true;
}catch (Exception e){
e.printStackTrace();
}
}
return false;
}
在我的客户端,我在 Asynctask 类中打开连接,如下所示:
@Override
protected ResponseHandler doInBackground(Object... params) {
try {
serverResponse=new ServerResponse();
result = restTemplate.getForObject(URL+conditions,tClass,params);
serverResponse.singleResult=result;
serverResponse.isReady=true;
responseHandler.onServerRespond(serverResponse);
}catch (Exception e){
serverResponse.isReady=false;
serverResponse.message=e.getMessage();
}
return responseHandler;
}
我和我的用户在我的 Activity 上调用了这个方法:
public static void registerUser(User user,ResponseHandler responseHandler){
String condition="/user_api/register?user=";
new Core<Long>(condition,Long.class,responseHandler).execute(user);
}
我在我的核心 AsynTask 类中的 restTemplate.getForObject(URL+conditions,tClass,params); 行得到了 Exeption,而 exeption 是:
Could not create URI object: Illegal character in scheme at index 0: 192.168.1.2:/3000/user_api/register?user
我的服务器网址是 192.168.1.2:3000
【问题讨论】:
-
您的网址似乎在端口号之前有额外的
/,或者您只需在192.168.1.2之前添加http:// -
没有我在 getForObject() 中输入的 url 端口号是 :URL="192.168.1.2:3000"
-
这是协议,对吧?我的本地机器上总是有这个问题)太烦人了
-
是的,这太烦人了@varren
-
另一个问题...您之前使用过 Sprin api 吗?我想将用户发送到我的服务器,但没有发送到服务器,并且服务器端或客户端没有 expetion 你能再次查看我的 AsyncTask 类的正文吗@varren
标签: java android spring rest spring-mvc