使用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的具体用法: 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(“”) .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();

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

经验分享 程序员 微信小程序 职场和发展