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使用详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)