Android httpConnection练习

    通过URl访问网络图片资源:

package com.engineer.shizhibin.httpdemo;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {
    private EditText mEdit;
    private Button mButton;
    private ImageView mImage;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mEdit = (EditText) this.findViewById(R.id.url);
        mImage = (ImageView)this.findViewById(R.id.image);
        mEdit.setText("https://mediaservice.audi.com/media/live/50800/fly1400x601n8/868/2018.png?wid=291");

    }
    public void getImage(View view) {
        final String url = mEdit.getText().toString().trim();
        if(url.equals("")) {
            Toast.makeText(this,"路径不能为空",Toast.LENGTH_LONG).show();
        }else{
            new Thread() {
              public void run() {
                  HttpURLConnection connection = null;
                  URL url1 = null;
                  try {
                      url1 = new URL(url);
                      connection = (HttpURLConnection)url1.openConnection();
                      connection.setRequestMethod("GET");
                      InputStream in = connection.getInputStream();
                      byte[] result = StreamTool.getBytes(in);
                      final Bitmap bitmap = BitmapFactory.decodeByteArray(result,0,result.length);
                      runOnUiThread(new Runnable() {
                          public void run() {
                              mImage.setImageBitmap(bitmap);
                          }
                      });
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
            }.start();
        }
    }
}

处理返回流的类:

package com.engineer.shizhibin.httpdemo;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

/**
 * Created by 13922 on 2018/6/18.
 */

public class StreamTool {
    /**
     * 把一个inputstream里面的内容转化成一个byte[]
     */
    public static byte[] getBytes(InputStream is) throws Exception{
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while((len = is.read(buffer))!=-1){
            bos.write(buffer, 0, len);
        }
        is.close();
        bos.flush();
        byte[] result = bos.toByteArray();
        return  result;
    }
}

在Manifest.xml中添加访问网络权限:

    <uses-permission android:name="android.permission.INTERNET">
    </uses-permission>



猜你喜欢

转载自blog.csdn.net/bingocoder/article/details/80727373