zoukankan      html  css  js  c++  java
  • Android网络编程http派/申请服务

    最近的研究Android网络编程知识,这里有一些想法,今晚学习。与您分享。
    在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况。使用HttpURLConnection向server发送请求的数据,然后处理server返回的数据。

    以下的代码仅仅是client的一个简答測试代码。还须要在pc上安装一个 tomcatserver ,然后将demo中的jsp文件部署到tomcat上。详细的方法百度一下便知。




    package com.lee.nethttp;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Base64;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
        private EditText mEditText = null;
        private Button mButton = null;
        private TextView mTextView = null;
        
        private String mUrl = "http://192.168.0.109:8080/lee/index.jsp";//依据自己主机的ip设置
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mEditText = (EditText) findViewById(R.id.edit);
            mButton = (Button) findViewById(R.id.button);
            mButton.setOnClickListener(mButtonClickListener);
            mTextView = (TextView) findViewById(R.id.text);
    
        }
    
        private OnClickListener mButtonClickListener = new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                String content = mEditText.getText().toString();
                content = toBase64(content);
                String[] params = { content };
                new NetHttpAsyncTask().execute(params);
            }
        };
    
        private class NetHttpAsyncTask extends AsyncTask<String, Void, String> {
    
            @Override
            protected String doInBackground(String... params) {
                String result = null;
                
                try {
                    URL url = new URL(mUrl);
                    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                    
                    connection.setRequestMethod("POST");
                    connection.setDoInput(true);
                    connection.setDoOutput(true);
                    connection.setUseCaches(false);
                    connection.setRequestProperty("Content-type",
                            "application/x-www-form-urlencoded;charset=UTF-8");
                    connection.setConnectTimeout(3000);
                    connection.setReadTimeout(3000);
                    
                    PrintWriter writer = new PrintWriter(connection.getOutputStream());
                    String str = "content" + "=" + params[0];
                    writer.print(str);
                    writer.flush();
                    writer.close();
                    
                    InputStream input = connection.getInputStream();
                    ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
                    int ch;
                    while((ch = input.read()) != -1){
                        outputBuffer.write(ch);
                    }
                    
                    result = outputBuffer.toString();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
                return result;
            }
    
            @Override
            protected void onPostExecute(String result) {
                mTextView.setText(result);
            }
        }
        
        private String toBase64(String content){
            try {
                content = Base64.encodeToString(content.getBytes("UTF-8"), Base64.DEFAULT);
                Log.e("lee", "toBase64 content = " + content);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            
            return content;
        }
    }
    




    Demo 下载地址



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    jenkins 安装及配置(Windows环境)
    .net 部署iis 为https安全协议解决方案
    利用Aspose转换office成PDF API程序
    Quickuse.Lock 快速应用.锁
    微信公众号获取图片时报错43003
    C# Windows系统运行exe程序提示'net'不是内部或外部命令,也不是可运行的程序或批处理文件
    C# 共享目录如何登录
    Window系统 如何拷贝命令提示符中的数据
    Windows系统 如何获取文件的MD5
    jq table 自动滚动
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4910818.html
Copyright © 2011-2022 走看看