问题描述
- android网络开发 requestcode不为200
-
一个简单的例子,新建一个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); } } }
}
解决方案
你的图片地址有问题,都打不开
解决方案二:
是get还是post
huc.setRequestMethod("GET");
改成
huc.setRequestMethod("POST");
huc.connect();
解决方案三:
你把GET改成POST试试
时间: 2024-08-26 04:54:45