Android中HttpURLConnection使用详解

Android中HttpURLConnection使用详解,第1张

概述Http协议的认识:Android中发送http网络请求是很常见的,要有GET请求和POST请求。一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端。GET表示希望从服务器那里获取数据,而POST则表示希望提交数据给服务器。通过Http访问网络的三个步骤:

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使用详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存