Android程序开发之网络通信(二): 使用Http的Post方式与网络交互通信

MainActivity.java
package com.example.treasure.httpget;

import android.app.Activity;
import android.content.SyncStatusObserver;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.get).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               new AsyncTask<String,Void,Void>(){

                   @Override
                   protected Void doInBackground(String... params) {
                       try {
                           URL url = new URL(params[0]);
                           HttpURLConnection connection= (HttpURLConnection) url.openConnection();

                           connection.setDoInput(true);
                           connection.setDoOutput(true);
                           connection.setRequestMethod("POST");

                           OutputStreamWriter osw=new OutputStreamWriter(connection.getOutputStream(),"utf-8");
                           BufferedWriter bw=new BufferedWriter(osw);
                           bw.write("keyfrom=treasure&key=1383408303&type=data&doctype=xml&version=1.1&q=good");
                           bw.flush();

                           InputStream is=connection.getInputStream();
                           InputStreamReader isr=new InputStreamReader(is,"UTF-8");
                           BufferedReader br=new BufferedReader(isr);
                           String line;
                           while((line=br.readLine())!=null){
                               System.out.println(line);
                           }
                           br.close();
                           isr.close();
                           is.close();
                       } catch (MalformedURLException e) {
                           e.printStackTrace();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                       return null;
                   }
               }.execute("http://fanyi.youdao.com/openapi.do");

            }
        });
    }

}

你可能感兴趣的:(Android程序开发之网络通信(二): 使用Http的Post方式与网络交互通信)