Android:向服务器发布POST或JSON请求,而不使用所有已弃用的函数

时间:2015-08-19 10:57:21

标签: android json http post https

我正在开发一个Android应用程序,它使用HTTP POST将登录数据发送到服务器。这一切都运行良好,直到HTTPClient和NameValuePair库在最近的更新中都被弃用。

我已经谷歌了很多新的方法,我知道我应该使用Http(s)URLConnection连接到服务器,但我不能让它正常工作,谷歌开发者网站不提供一个例子。我确实使用了this piece of code但它不起作用,抛出各种语法错误(缺少;等等)。

是否有人可以提供有效的HTTP请求示例? POST和JSON都很好,因为我可以轻松调整PHP代码以接收JSON对象。提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用截击。这是一个如何使用它的划痕。

StringRequest strReq = new StringRequest(Request.Method.POST,
            <url>, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            Log.d(TAG, response.toString());

            try {
                //whatever format from response,do here...for eg:
                JSONObject responseObj = new JSONObject(response);
            //do parsing here after posting and response..
                }

            } catch (JSONException e) {
                Toast.makeText(getApplicationContext(),
                        "Error: " + e.getMessage(),
                        Toast.LENGTH_LONG).show();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("name", editText.getText().toString());
            Log.e(TAG, "Posting params: " + params.toString());
            return params;
        }

    };