如何使用Android Studio发送一个简单的GET/POST网络请求
Android Studio发送简单的GET/POST网络请求阅读文章需知前提准备权限添加启动子线程,发送网络请求POST请求如何添加参数?后文必读能点赞投币一键三连嘛?阅读文章需知开发环境:Android Studio 4.1 安卓虚拟机版本(Target)android 11开发语言: JAVA (如果是Kotlin 那么勿怪小弟打扰了)本着点赞投币一键三连不迷路的原则,小编第一句话就把开发环
Android Studio发送简单的GET/POST网络请求
阅读文章需知
开发环境:Android Studio 4.1 安卓虚拟机版本(Target)android 11
开发语言: JAVA (如果是Kotlin 那么勿怪小弟打扰了)
本着点赞投币一键三连不迷路的原则,小编第一句话就把开发环境给出,避免版本相差太多而浪费您的时间。
感谢各位大佬们打开小弟的文章,本篇文章纯粹针对于那些对于Android Studio开发的萌新们,文章所涉及的知识水平非常浅,不喜勿喷。纯属是为了让萌新们在初学的时候少踩坑(毕竟小弟在写这篇文章之前所踩的坑,那可真是就差没拿个“高端探雷测试器”过来为我指点一下迷津)。
不得不自夸一下,本篇文章对于萌新们绝对是一篇让你感动到痛哭流泪的文章。毕竟咱这十头牛都拉不回正确的道路,在犯错的歧途上越走越远的水平也真是够可怜的。
前提准备
众所皆知,咱们首先就要创建一下非常完美且正确的android项目,哈哈哈。。。别问,问就是这么狗(俗话说的好,文章不凑数,何以扫天下)
权限添加
<manifest >
<application> .......</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
此代码一定要添加在<manifest>
标签之内,<application>
标签之外。
想必添加到其他的位置AS(Android Studio)也会给你报错,但是就怕报错了还不知道发生了什么= =
那么这是不是就🆗了呢? 这就🆗了我还要写这篇文章干啥呢 对吧😁
<application
...
...
android:usesCleartextTraffic="true"
...>
<activity>
...
...
</activity>
</application>
在你的<application>
里面添加一句android:usesCleartextTraffic="true"
是必不可少的一步,假设你没有这一步,那么你熟悉的老朋友就会来见你啦
启动子线程,发送网络请求
new Thread(){
@Override
public void run() {
networkRequest();
}
}.start();
开启一个子线程之后,在子线程中完成网络请求的处理。小弟建议将网络请求的代码封装一个函数,当然,萝卜青菜,各有所爱。
private void networdRequest(){
HttpURLConnection connection=null;
try {
URL url = new URL("你要请求的网址,比如www.某度.com");
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
//设置请求方式 GET / POST 一定要大小
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(false);
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
throw new IOException("HTTP error code" + responseCode);
}
String result = getStringByStream(connection.getInputStream());
if (result == null) {
Log.d("Fail", "失败了");
}else{
Log.d("succuss", "成功了 ");
}
} catch (Exception e) {
e.printStackTrace();
}
}
直接贴上代码,ctrl C +V 就能用,想必其他的代码都是啥意思,大家也不关心,小弟也就不啰嗦了。值得注意的是设置请求方式的时候一定要大写,否则后果自负(报错自己改)。本文实例采取的是POST请求的方式,因而采用字符串的形式接收返回的json结果。下面贴上处理json的代码:
private String getStringByStream(InputStream inputStream){
Reader reader;
try {
reader=new InputStreamReader(inputStream,"UTF-8");
char[] rawBuffer=new char[512];
StringBuffer buffer=new StringBuffer();
int length;
while ((length=reader.read(rawBuffer))!=-1){
buffer.append(rawBuffer,0,length);
}
return buffer.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
那么至此,一个简单的网络请求就基本上完成啦!
POST请求如何添加参数?
如果是学习网络请求调用后端API或者网上公开API接口的童鞋们,那么这个时候我们往往需要有一些必备的参数,那么AS如何添加参数呢?本文给出一个简单的示例:
。。。
。。。
connection.connect();
-----------------------------------------------
DataOutputStream dos=new DataOutputStream(connection.getOutputStream());
String param="My param";
dos.writeBytes(param);
使用也是非常的简单,只要在上面网络请求的代码后面添加上这三句代码就可以了。 是不是很简单~
后文必读
本文所有内容全是小编本人各种踩坑之后的经验之谈,如有任何错误,欢迎留言指正!
若本文有任何侵权的行为,请联系本人邮箱2196316793@qq.com。我会在第一时间删除,谢谢!
能点赞投币一键三连嘛?
好像咱csdn不兴这个,那就欢迎大家白嫖吧~
希望大家通过本篇文章可以在发送简单的网络请求时可以少踩坑、不踩坑。
如果本文的方法无效,那么小编祝你下篇文章一定能成功!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)