Android POST with HTTP Url request



我想使用POST命令,像这样:

http://123.456.78.9/Dev/SignIn?Username=email%40google.edu&密码= thePassword

在我的Android应用程序,我已经看了像HTTPConnection的东西,但我仍然不确定什么是最好的方式来做这样的调用,我需要包括多个键和值。

我现在正在尝试这个:

                URl url = new URL("http://123.456.78.9/Dev/SignIn?");     
                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("POST");
                conn.setDoInput(true);
                conn.setDoOutput(true);
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("email", emailText));
                params.add(new BasicNameValuePair("Password", passwordText));
                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(getQuery(params));
                writer.flush();
                writer.close();
                os.close();

这样可以吗?如果我用这个方法,我怎么得到响应呢?

你可以使用Android异步Http客户端库:

final AsyncHttpClient asyncHttpClient=new AsyncHttpClient();
    //Add Parameter
    RequestParams requestParams=new RequestParams();
    requestParams.put("email", emailText);
    requestParams.put("Password", passwordText);
    //Chose one from two method in below
    //send with get method
    asyncHttpClient.get("http://123.456.78.9/Dev/SignIn", requestParams, new TextHttpResponseHandler() {
        @Override
        public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
        }
        @Override
        public void onSuccess(int statusCode, Header[] headers, String responseString) {
            System.out.println(responseString);
        }
    });
    //send with post method
    asyncHttpClient.post("http://123.456.78.9/Dev/SignIn", requestParams, new TextHttpResponseHandler() {
        @Override
        public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
        }
        @Override
        public void onSuccess(int statusCode, Header[] headers, String responseString) {
            System.out.println(responseString);
        }
    });

但是你必须在gradle中添加这个库

compile 'com.loopj.android:android-async-http:1.4.9'

最新更新