使用HttpUrlConnection 1.通过 URL 对象封装地址,打开一个 HttpURLConnection
2.设置头信息之后获取响应码,如果成功返回 200 即可从 HttpURLConnection 中获取输入流读取数据 必须设置权限

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


例1:

public void click(View view) {

new Thread() {

@Override

public void run() {

try {

String path = etUrl.getText().toString();

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5000);

int code = conn.getResponseCode();

if (code == 200) { // 获取响应码

InputStream is = conn.getInputStream();

ByteArrayOutputStream bos = new ByteArrayOutputStream();

byte[] buffer = new byte[8192];

int len = -1;

while ((len = is.read(buffer)) != -1) {

bos.write(buffer, 0, len);

}

is.close();

bos.close();

byte[] data = bos.toByteArray();

final String text = new String(data);

runOnUiThread(new Runnable() {

@Override

public void run() {

tvContent.setText(text);

}

});

}

conn.disconnect();

throw new NetworkErrorException("网络错误:"+code);

} catch (Exception e) {

e.printStackTrace();

}

}

}.start();

}


2. 使用ayscHttpClient(使用前需在github上下载相关源码)


AsyncHttpClient client = new AsyncHttpClient();

client.get(etUrl.getText().toString(), new TextHttpResponseHandler() {

@Override

public void onFailure(int statusCode, Header[] headers,

String responseString, Throwable throwable) {

System.out.println(statusCode);

}


@Override

public void onSuccess(int statusCode, Header[] headers,

String responseString) {

System.out.println(statusCode);

tvContent.setText(responseString);

}

});


//3.使用asyncHttpClient获取图片

AsyncHttpClient client = new AsyncHttpClient();

client.get(etUrl.getText().toString(), new AsyncHttpResponseHandler() {

@Override

public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

Bitmap bitmap = BitmapFactory.decodeByteArray(responseBody, 0, responseBody.length);

iv_content.setImageBitmap(bitmap);

}


@Override

public void onFailure(int statusCode, Header[] headers,

byte[] responseBody, Throwable error) {

}

});


更多相关文章

  1. ubuntu 18.04编译Android(安卓)7.1源码
  2. Android(安卓)如何使用tcpdump抓包
  3. 在Android中访问WebService接口
  4. 【30篇突击 android】源码统计 十七
  5. android 6.0以上添加动态权限,多条权限一起请求
  6. Andorid中xml资料汇总
  7. [android] android下文件访问的权限
  8. Animation总结
  9. Android(安卓)WiFi扫描

随机推荐

  1. 事件处理机制之基于监听的事件处理机制
  2. android实时视频网络传输方案总结(一共有
  3. 模仿iOS版微信的滑动View
  4. 【分享】性能比肩美拍秒拍的Android视频
  5. Android中数据文件解析(Json解析【从服务
  6. launcher源码分析
  7. 【2014年最后的分享啦】Android实现自定
  8. Android(安卓)里的对话框Dialog 实现机制
  9. Android(安卓)高通8909 系统之路之 裁剪
  10. [Android] Android制作自己的依赖库让别