java - 是否可以从Android应用程序调用Spring Controller Post方法

标签 java android spring

如何使用httpclient从android应用程序调用spring post方法?我在我的 spring Controller 中编写了一个 post 方法(代码示例如下)。我已在 list xml 中授予互联网权限并实现了 AsyncTask。但我从我的网络服务收到响应 null

// post method to call from android application
@RequestMapping(method = RequestMethod.POST)
public void login() {   
    log.info("post calling from android");
}

技术上可行吗?

最佳答案

I have solved the problem

Spring Controller Code:

   @RequestMapping(method = RequestMethod.POST)
    public void login(HttpServletRequest request, HttpServletResponse response) {       
        String username = request.getParameter("username");
        String password = request.getParameter("password");     
        response.addHeader("IS_VALID", "yes"); 
    }

**In android Activity class:**

public void login(View view) {
            Log.d("","This is login method......");         
            new ReqService().postData("username", "password");
        }


**ReqService Class:**

public class ReqService {

    public void postData(String username, String password) {
        new RmsLogin().execute("http://10.0.1.112:8080/myapp/idm/android-login", username, password);    // url of post method in spring controller
    } 

    private class RmsLogin extends AsyncTask<String, Object, Object> {

        private Exception exception;

        protected String doInBackground(String... params) {
            HttpClient httpclient = new DefaultHttpClient();
            String url = params[0];
            String username = params[1];
            String password = params[2];
            HttpPost httppost = new HttpPost(url);

            Log.d("httppost =",httppost.getURI().toString());
            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("username", username));
                nameValuePairs.add(new BasicNameValuePair("password", password));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                String valid = response.getFirstHeader("IS_VALID").getValue();
                Log.d("response :", valid);             

            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        protected void onPostExecute(Object restult) {
            //Log.d("response :", String.valueOf(restult));
        }

    }

}

关于java - 是否可以从Android应用程序调用Spring Controller Post方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27270578/

相关文章:

java - Zxing库项目导入错误

android - Android 手机上的 NFC 阅读器可以读取哪些 RFID 标准?

java - 使用java和spring的生产者-消费者模式

java - 将 java.util.Map 从 jsp 传递到 servlet

spring - 使用 Spring 的 JSR-303 bean 验证没有启动

java - Eclipse 插件只能在我的机器上运行

java - 使用和不使用 before/after hooks 运行 JUnit 测试

javascript - 单击事件未触发并溢出 : scroll

java - 如何在 Java 中解析这个字符串?

Java:构造函数如何返回值?