一个简单的例子,新建一个Asynctask,从网络获取一张图片,显示到ImageView上,但是requestcode一直是405是怎么回事?菜鸟一枚,大神勿喷
public class MainActivity extends AppCompatActivity {
public static final String URLPATH = "http://img1.imgtn.bdimg.com/it/u=1853916932,391038869&fm=21&gp=0.jpg";
ImageView iv = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.imageView);
}
public void click(View view) {
MyAsynctask mTask = new MyAsynctask();
mTask.execute(URLPATH);
}
class MyAsynctask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... params) {
InputStream inputStream = null;
URL url = null;
HttpURLConnection huc = null;
Bitmap bmp = null;
String path = getApplicationContext().getFilesDir().getAbsolutePath();
System.out.println("path: " + path);
try {
url = new URL(params[0]);
} catch (MalformedURLException e) {
e.printStackTrace();
}
if (url != null) {
try {
huc = (HttpURLConnection) url.openConnection();
huc.setConnectTimeout(5000);
huc.setDoInput(true);
huc.setDoOutput(true);
huc.setRequestMethod("GET");
if (huc.getResponseCode() == 200) {
inputStream = huc.getInputStream();
byte[] data = new byte[1024];
int len = 0;
OutputStream os = new FileOutputStream(path + "/test.jpg");
while ((len = inputStream.read(data)) != -1) {
os.write(data, 0, len);
}
bmp = BitmapFactory.decodeFile(path + "/test.png");
} else {
System.out.println("hola: connection error!" + huc.getResponseCode());
}
} catch (IOException e) {
e.printStackTrace();
}
}
return bmp;
}
@Override
protected void onPostExecute(Bitmap bmp) {
if (bmp != null) {
iv.setImageBitmap(bmp);
}
}
}
}