使用okhttp发送http(post方法)

                一直想写博客来记录自己的学习状况,终于下定决心要来写这篇博客了。
最近一直在研究如何使用okhttp,现在终于可以发送了,哈哈。废话就不多说,接下来开始讲okhttp吧。目前主要讲如何通过post方法来发送http。此处有参考《第一行代码》

注意点一
               在使用okhttp之前,我们需要先在项目中添加okhttp的依赖。编辑app/build.gradle文件,在dependencies闭包中添加如下内容:
               dependencies {
               compile fileTree(dir: ‘libs’, include: [’*.jar’])
                androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, {
                exclude group: ‘com.android.support’, module: ‘support-annotations’
})
               compile ‘com.android.support:appcompat-v7:26.+’
                compile ‘com.android.support.constraint:constraint-layout:1.0.2’
                testCompile ‘junit:junit:4.12’
               compile’com.squareup.okhttp3:okhttp:3.4.1’
}

               添加上述依赖会自动下载两个库,一个是okhttp库,一个是okio库,后者是前者的通信基础。
注意点二
               做耗时的操作时要在一个子线程里写,如果写在主线程里,会卡死的。(这里描述得不是很好,欢迎大家来评论和指导)
注意点三
有关网络的操作都需要声明一下权限,因此我们需要在AndroidManifest.xml文件里加入权限声明,如下所示:
在这里插入图片描述

                下面我们来看一下okhttp的具体用法:
1)创建一个OkHttpClient的实列,如下所示:
               OkHttpClient client = new OkHttpClient();
2)创建一个RequestBody对象(存放待提交的参数),如下所示:
               RequestBody requestBody = new FormBody.Builder()
                .add(“username”,et_username.getText().toString())
//et_username.getText().toString()是获取et_username的内容
                .add(“password”,et_password.getText().toString())
                .build();
3)在Request.Builder中调用一下post()方法,并将RequestBody对象传入:
               Request request = new Request.Builder()
                .url(“http://118.89.217.225:8080/Proj18/login”)
                .post(requestBody)
                .build();

//此处的url是一个后台的地址
4)调用OkHttpClient的newCall()方法来创建一个Call对象,并调用它的execute()方法来发送请求并获取服务器返回的数据,写法如下:
               Response response = client.newCall(request).execute();
//execute()同步请求,需要try和catch
//enqueue方法是异步请求
那如何得到返回的具体内容呢?具体写法如下:
                final String responseData = response.body().string();

这篇博客就写到这了,有说得不好或者不对的也希望大家来留言,给点建议。

我的demo(提取码:38sl)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值