【问题标题】:Send Data to Server with Spring api's使用 Spring api 向服务器发送数据
【发布时间】: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


【解决方案1】:

答案很简单,但通常很难调试,因为很容易忘记在本地 url 192.168.1.2 之前添加协议部分 http://。因此,在您的情况下,结束 url 应如下所示:

URL="http://192.168.1.2:3000"

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 2012-11-29
    • 2014-01-31
    • 1970-01-01
    • 2010-12-03
    • 2015-11-18
    相关资源
    最近更新 更多