Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android網絡編程之http發送/請求服務

Android網絡編程之http發送/請求服務

編輯:關於Android編程

 

最近在學習Android網絡編程的知識,以下是今晚學習的一些心得。與大家共同分享。
在實際的應用開發中很多時候需要app向服務器請求數據,那麼app如何發送請求呢?下面的代碼就是其中的一種情況,使用HttpURLConnection向服務器發送請求的數據,然後處理服務器返回的數據。

下面的代碼只是客戶端的一個簡答測試代碼。還需要在pc上安裝一個 tomcat服務器 ,然後將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 {

        @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;
    }
}



 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved