【问题标题】:How to send data from android to google app engine web app made in java如何将数据从android发送到用java制作的google app engine web app
【发布时间】:2015-08-04 11:30:15
【问题描述】:
private String s;
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);
    //s=numDisplay.toString();  
    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){
            //pb.setVisibility(View.GONE);
            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://1-dot-primecalculation.appspot.com/");

            try {

                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("id0", 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
            }
        }



   }
 }

**Server Side Code**
private static final long serialVersionUID = 1L;
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    processRequest(req, resp);

    String user = req.getParameter("id0");
    //resp.setContentType("text/plain");
    PrintWriter writer = resp.getWriter();
     writer.write("value" + user);
}
private void processRequest(HttpServletRequest req, HttpServletResponse resp)throws IOException {
// TODO Auto-generated method stub
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {

    doPost(req, resp);
}}

我是谷歌应用引擎和 android 的新手。在 android 中创建了一个应用程序,它从用户那里获取价值并将其发布到 servlet。 我使用 httpClient 将数据从 android 发布到 servlet,在本地托管并从 emulator 发送数据。 我从 servlet 端收到空值。我在这种情况下搜索了很多,但没有得到问题的解决方案。感谢任何帮助。Thnx

【问题讨论】:

  • 请发布您的 servlet 代码和调用它的 android 代码块,以便我们查看可能导致 null 的原因。

标签: android google-app-engine java-ee-7


【解决方案1】:

这是一个简单的例子: http://webdeveloperpadawan.blogspot.co.uk/2015/01/google-app-engine-and-android-playing.html

注意您定义 Google 应用引擎后端服务的方式,然后在 Android 代码中像这样调用它:

myApiService.sayHi(name).execute()

如果没有更多细节,我不确定您的错误是什么,但请确保您的本地托管 servlet 首先运行。否则你永远走不下去。在继续使用 Android 代码之前,您应该能够使用基本的 Web 表单对此进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多