Android--okhttp使用

前面准备

1.gradle里面的依赖

implementation("com.squareup.okhttp3:okhttp:4.2.1")
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation("com.squareup.okhttp3:okhttp:4.2.1")//这一行
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

2.创建一个okhttp对象

//创建OkHttp
    private final OkHttpClient okHttpClient = new OkHttpClient.Builder().build();

1.使用get方式

   Request request = new Request.Builder()
     .url("http://www.larryzy.com/addUser?account=121&pwd=2")
     .build();
      Call call = okHttpClient.newCall(request);
      //进入队列等待执行
      call.enqueue(new Callback() {
          @Override
          public void onFailure(@NotNull Call call, @NotNull IOException e) {
          }
          @Override
          public void onResponse(Call call, Response response) throws IOException {
              Log.i("tag", response.body().string());
          }
      });

2.使用post方式请求

RequestBody formBody = new FormBody.Builder().add("account", "800")
                        .add("pwd", "80")
                        .build();
                Request request = new Request.Builder()
                        .url("http://www.larryzy.com/p/data")
                        .post(formBody)
                        .build();
                Call call = okHttpClient.newCall(request);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
                    }
                    @Override
                    public void onResponse(Call call, Response response) throws IOException {

                        Log.i("tag", response.body().string());

                    }
                });

注意事项

1.response.body().string() 只能调用一次,否则报错

发布了21 篇原创文章 · 获赞 4 · 访问量 3008

猜你喜欢

转载自blog.csdn.net/weixin_42551915/article/details/103612626