【问题标题】:Receiving null value in java servlet from android application从android应用程序接收java servlet中的空值
【发布时间】:2015-10-20 18:14:15
【问题描述】:
    public void doGet(HttpServletRequest req, HttpServletResponse resp)

        throws IOException {
              String user = req.getParameter("id");
              resp.setContentType("text/plain");
              PrintWriter writer = resp.getWriter();
              writer.write("value"+user);}}
**********************************************************************
**Android side code**
EditText numDisplay;
Button calculateNow;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    numDisplay= (EditText)findViewById(R.id.editText1);
    calculateNow = (Button)findViewById(R.id.button1);  
    calculateNow.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            {

                new MyAsyncTask().execute(numDisplay.getText().toString());     

            } }
     } );
}

    private class MyAsyncTask extends AsyncTask<String, Integer, Double>{
        protected Double doInBackground(String... params) {

            postData(params[0]);
            return null;
        }
        protected void onPostExecute(Double result){

            Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_LONG).show();
        }
        protected void onProgressUpdate(Integer... progress){
            //pb.setProgress(progress[0]);
        }
        public void postData(String valueIWantToSend) {
            // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://primecalculation.appspot.com/");
            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("id", valueIWantToSend));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
        }

我正在向 servlet 发送值,但在 servlet 中我得到的是空值。

从 android 端发送数据。代码从 android 和 java 服务器端正确编译。 当我在网页上运行程序时,我得到空值。

感谢您的帮助

【问题讨论】:

    标签: java android servlets


    【解决方案1】:

    您在服务器端代码中使用 doGet,但在客户端调用 HttpPost。更改其中任何一个。

    服务器代码:

    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
    
    ...
    }
    

    客户代码:

    HttpGet httppost = new HttpGet("http://primecalculation.appspot.com/");
    

    但不是两者都

    【讨论】:

    • 我将 doGet 更改为 doPost。现在得到这个“错误 405 HTTP 方法 GET 不受此 URL 支持”
    • 你确定吗?我使用了高级 REST 客户端,并且能够向上述 URL 发送 get 和 post 请求
    • 是的,我确定。好的,我会尝试更改android端代码。会回复你
    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多