HttpURLConnection的get方式使用笔记
Get获取数据步骤
1.创造URL对象
2.创造URLConnection对象调用URL对象的openConnection( )
3.创造HttpURLConnection对象实例
4.根据状态码判断请求结果,200表示正常
5.将字节流转换成字符串
例子:获取网易新闻字符串代码
链接如图: link.
- 新建一个类HttpURLconnectionClass
public class HttpURLconnectionClass {
public static String getData(String urlpath){
String data="";
try {
URL url=new URL(urlpath);
URLConnection conn=url.openConnection();
HttpURLConnection httpConn =(HttpURLConnection) conn;
int responseCode =httpConn.getResponseCode();
if (responseCode==200){
InputStream is =httpConn.getInputStream();
data = StreamtoString(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
public static String StreamtoString(InputStream is){
String str="";
StringBuilder builder =new StringBuilder();
try {
BufferedReader br=new BufferedReader(new InputStreamReader(is,"UTF-8"));
String con;
while ((con=br.readLine())!=null){
builder.append(con);
}
br.close();
return builder.toString();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
}
- Activity中代码
public class Main4Activity extends AppCompatActivity {
TextView tvHttpClient;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
tvHttpClient=findViewById(R.id.tvHttpClient);
handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(msg.what==1){
String response=(String)msg.obj;
tvHttpClient.setText(response);
}
}
};
new Thread(){
@Override
public void run() {
super.run();
String netdata="";
netdata=HttpURLconnectionClass.getData("http://c.m.163.com/nc/article/headline/T1348647853363/0-40.html");
Log.i("LXH","access"+netdata);
Message msg =Message.obtain();
msg.what=1;
msg.obj=netdata;
handler.sendMessage(msg);
}
}.start();
}
}
- AndroidManifest.xml里面添加权限
<uses-permission android:name="android.permission.INTERNET" />
- 运行
项目代码链接: HTTPApplication.
扩展
将得到的字符串解析
欢迎指错,一起学习鸭