Android中HttpURLConnection类使用介绍

 更新时间:2022年12月13日 15:52:39   作者:小鹿迷鹿  
早些时候其实我们都习惯性使用HttpClient,但是后来Android6.0之后不再支持HttpClient,需要添加Apache的jar才行,所以,就有很多开发者放弃使用HttpClient了,HttpURLConnection毕竟是标准Java接口(java.net) ,适配性还是很强的

Http协议的认识:

Android中发送http网络请求是很常见的,要有GET请求和POST请求。一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端。

GET表示希望从服务器那里获取数据,而POST则表示希望提交数据给服务器。

通过Http访问网络的三个步骤:

1、发送http请求

2、接受服务响应

3、解析返回数据

HttpURLConnection类位于java.net包中,它用于发送HTTP请求和获取HTTP响应。

话不多说,直接上代码:

首先创建一个安卓项目。在xml中编写如下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="获取"
        />
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <TextView
            android:id="@+id/response"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
    </ScrollView>
</LinearLayout>

ScrollView是可供用户滚动的层次结构布局容器,允许显示比实际多的内容,借助ScrollView控件,我们就可以以滚动的形式查看屏幕外的那部分内容。

上面的代码主要是实现,当点击按钮时,下面的滚动视图将展示其内容。

在java中编写如下代码:

public class MainActivity extends AppCompatActivity {
   TextView response;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=(Button)findViewById(R.id.button);
        response=(TextView)findViewById(R.id.response);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            URL url=new URL("http://www.baidu.com");
                            HttpURLConnection connection=(HttpURLConnection)url.openConnection();
                            connection.setRequestMethod("GET");
                          InputStream inputStream=connection.getInputStream();
                          BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
                          StringBuilder stringBuilder=new StringBuilder();
                          String Line;
                          while ((Line=reader.readLine())!=null){
                              stringBuilder.append(Line);
                          }
                          show(stringBuilder);
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
        });
    }
    private void show(final StringBuilder stringBuilder) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                response.setText(stringBuilder);
            }
        });
    }
}

首先需要获取到HttpURLConnection的实例,一般只需new出一个URL对象,并传入目标的网络地址,然后调用一下openConnection()方法即可,如下所示:

   URL url=new URL("http://www.baidu.com");
                            HttpURLConnection connection=(HttpURLConnection)url.openConnection();

在得到了HttpURLConnection的实例后,我们可以设置一下HTTP请求所使用的方法。常用的方法主要有两个:GET和POST。GET表示希望从服务器那里获取数据,而POST则表示希望提交数据给服务器。写法如下:

connection.setRequestMethod(“GET”);

之后在调用getInputStream()方法就可以获取到服务器返回的输入流了,剩下的任务就是对输入流进行读取。

最后别忘了在AndroidManifest.xml中声明一下网络权限和添加如下代码(不加就会有错误):

android:usesCleartextTraffic="true"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.http4">
<uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

效果图如下所示:

到此这篇关于Android中HttpURLConnection类使用介绍的文章就介绍到这了,更多相关Android HttpURLConnection内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android编程开发音乐播放器实例

    Android编程开发音乐播放器实例

    这篇文章主要介绍了Android编程开发音乐播放器,结合实例形式分析了Android音乐播放器开发所涉及的SeekBar,ListView,广播接收者(以代码的形式注册Receiver),系统服务,MediaPlayer等技巧,需要的朋友可以参考下
    2016-01-01
  • 源码剖析Android中Okio的使用

    源码剖析Android中Okio的使用

    这篇文章主要将从源码出发,带大家剖析一下Android中Okio的具体使用,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-02-02
  • Android实现学生管理系统

    Android实现学生管理系统

    这篇文章主要为大家详细介绍了Android实现学生管理系统的相关代码,供大家学习借鉴,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android系统中的蓝牙连接程序编写实例教程

    Android系统中的蓝牙连接程序编写实例教程

    这篇文章主要介绍了Android系统中的蓝牙连接程序编写实例教程,包括蓝牙的设备查找及自动配对等各种基础功能的实现,十分给力,需要的朋友可以参考下
    2016-04-04
  • Android使用ViewPager实现启动引导页

    Android使用ViewPager实现启动引导页

    这篇文章主要为大家详细介绍了Android使用ViewPager实现第一次启动引导页,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android判断SD卡是否已经挂载的方法

    Android判断SD卡是否已经挂载的方法

    这篇文章主要介绍了Android判断SD卡是否已经挂载的方法,涉及Android监听方法BroadcastReceiver的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Android实现可以展开的TextView

    Android实现可以展开的TextView

    这篇文章主要为大家详细介绍了Android实现可以展开的TextView,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android软件启动动画及动画结束后跳转的实现方法

    Android软件启动动画及动画结束后跳转的实现方法

    这篇文章主要介绍了Android软件启动动画及动画结束后跳转的实现方法,实例分析了Android图片播放及定时器的相关使用技巧,非常具有使用价值,需要的朋友可以参考下
    2015-10-10
  • Android SeekBar实现平滑滚动

    Android SeekBar实现平滑滚动

    这篇文章主要为大家详细介绍了Android SeekBar实现平滑滚动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • android调试工具DDMS的使用详解

    android调试工具DDMS的使用详解

    本篇文章对android调试工具DDMS的使用进行了详细的分析介绍。需要的朋友参考下
    2013-05-05

最新评论