Android使用OkHttp发送post请求
作者:FanRQ_ 发布时间:2022-12-04 13:24:57
标签:Android,OkHttp,post
本文实例为大家分享了使用OkHttp发送post请求的具体代码,供大家参考,具体内容如下
MainActivity.java
public class MainActivity extends AppCompatActivity {
private EditText mEt_qq;
private EditText mEt_pwd;
private TextView mTv_status;
String path = "http://169.254.53.96:8080/web/LoginServlet";
private static final int SUCCESS = 665;
private static final int FALL = 894;
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SUCCESS:
String text= (String) msg.obj;
mTv_status.setText(text);
break;
case FALL:
Toast.makeText(MainActivity.this, "没有网", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//对控件进行初始化操作
initVIew();
}
private void initVIew() {
mEt_qq = (EditText) findViewById(R.id.et_qq);
mEt_pwd = (EditText) findViewById(R.id.et_pwd);
mTv_status = (TextView) findViewById(R.id.tv_status);
}
/**
* 使用Post进行表单(键值对)上传,完成登录
* @param view
*/
public void login(View view){
//得到用户输入的信息,进行非空判断
String qq = mEt_qq.getText().toString().trim();
String pwd =mEt_pwd.getText().toString().trim();
if(TextUtils.isEmpty(qq) || TextUtils.isEmpty(pwd) ){
Toast.makeText(MainActivity.this, "不能输入为空", Toast.LENGTH_SHORT).show();
return;
}
//1.0 创建okhttpClinet
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10,TimeUnit.SECONDS)
.writeTimeout(10,TimeUnit.SECONDS)
.build();
FormBody formBody= new FormBody.Builder()
.add("qq", qq).add("pwd", pwd)
.build();
Request request= new Request.Builder()
.post(formBody)
.url(path)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
handler.sendEmptyMessage(FALL);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Message msg = Message.obtain();
msg.obj=string;
msg.what=SUCCESS;
handler.sendMessage(msg);
}
});
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/et_qq"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入qq号码" />
<EditText
android:id="@+id/et_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:inputType="textPassword" />
<Button
android:onClick="login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登陆" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_status"
android:text="登陆状态:"
/>
</LinearLayout>
build.gradle //依赖
implementation 'com.squareup.okhttp3:okhttp:3.4.2'
来源:https://blog.csdn.net/FanRQ_/article/details/84034915
0
投稿
猜你喜欢
- 1. 树型结构1.1概念树是一种 非线性 的数据结构,它是由 n ( n>=0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是
- springboot对kafka的client很好的实现了集成,使用非常方便,本文也实现了一个在springboot中实现操作kafka的d
- Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较
- 本文实例讲述了C#预处理器指令的用法。分享给大家供大家参考。具体用法分析如下:C#预处理器指令是在编译时调用的。预处理器指令(preproc
- 使用的是 idea - Lifecycle-package 的方式打包(maven)确认 <packaging>wa
- static 表示静态,它可以修饰属性,方法和代码块。1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这
- 以在搜索框搜索时,自动补全为例:其中还涉及到一个词,Tokenizer:分词器,分解器。上效果图:MainActivity.java:pac
- 最近在做一个平板的应用,底部的BACK HOME 还有电池WIFI的那一条STATUS_BAR设置全屏后怎么也去不掉,查找资料后,发现一个比
- 本文实例讲述了C#后台创建控件并获取值的方法。分享给大家供大家参考。具体实现方法如下:前台代码:<form id="form
- 我想到使用Redis的订阅发布模式是用来解决推送问题的~。对于概念性的叙述,多多少少还是要提一下的:什么是Redis发布订阅?Redis发布
- 今天实现了一个模拟碟片加载过程的小demo,在此展示一下。由于在公司,不好截取动态图片,因此就在这截取两张静态图片看看效果先。下面简单的将代
- 根据中国的国情,宽带共享遭受dns污染和HTTP拦截非常严重,造成网络请求的不稳定.但是ip/tcp协议一般不受影响。因此可以把域名先解析成
- final 类final 类不能被继承,同时,一旦用 final 修饰了类,也就意味着 final 类中的所有方法都被隐式地指定为 fina
- 目录1、在java中,无论在何处调用,使用静态属性必须以类名做前缀。2、若有定义语句: int a=10 ; double b=3.14 ;
- 一、前言Unity3D不仅仅可以开发游戏,还有非常多的开发方向,秉承着兴趣为先,将可以使用Unity制作的各种应用案例,分享如何进行开发,如
- 制作透明窗体办法有好几种,各有优缺点. 我们先来看看C#本身提供的办法 1:通过设置窗体的 TransparencyKey实现 例:窗体中
- 本节向你展示如何在任务中发送数据给UI线程里的对象,这个特性允许你在后台线程工作,完了在UI线程展示结果。在UI线程定义一个HandlerH
- 本文实例分析了C#泛型用法。分享给大家供大家参考。具体分析如下:这里演示如何创建具有单个类型参数的自定义泛型列表类,以及如何实现 IEnum
- 编写C#程序的时候,我们都遇到过配置文件,而如今绝大多数的配置文件都是用XML写的。所以在处理的时候就需要操作XML文件。那么C#如何操作X
- 前言:先写个简单的地点签到功能,如果日后有时间细写的话,会更加好好研究一下百度地图api,做更多逻辑判断。这里主要是调用百度地图中的场景定位