关于Okhttp的post请求数据

本文介绍如何使用OkHttp库在Android应用中发起POST请求,包括创建OkHttpClient实例、构造请求参数、发起请求并处理响应的过程。通过示例代码展示了具体的实现步骤。

先写一个方法

  public String getpost(String url){
            // 1.创建OkHttpClient
            OkHttpClient okHttpClient = new OkHttpClient.Builder()
                    .build();

            // 2.创建请求参数,注意,此处有多种方式
            RequestBody requestBody = new FormBody.Builder()
                    .add("key", "8a151c3a5164211acff0dbb0657a5fe1")
                    .add("menu", "红烧肉")
                    .build();
            // 3.创建请求request
            Request request = new Request.Builder()
                    .url(url)
                    .post(requestBody)
                    .build();
            // 4.发起请求,此处使用的是异步请求,按需要选择同步或异步
            try {
                Response response = okHttpClient.newCall(request).execute();
                if (response.code()==200){


                  return response.body().string();

                }

            } catch (IOException e) {
                e.printStackTrace();
            }
            return "";
        }


在主方法里写一个button的点击事件

 case R.id.post:
                    new Thread(){
                        @Override
                        public void run() {
                            super.run();
                            String requese=getpost("http://apis.juhe.cn/cook/query.php");
                            if (requese!=null){
                                Log.e("onResponse: ","sg发光时代"+requese
                                );
                            }
                        }
                    }.start();

                    break;





OkHttp 是一个开源的 HTTP 客户端,它是由 Square 公司贡献的一个轻量级框架,用于处理 Java 和 Android 应用程序的 HTTP 请求。其中,OkHttp 提供了丰富的请求方法,包括 GET、POST、PUT、DELETE 等等。而 OkHttpPOST 请求方法主要用于向服务器提交数据。 下面是一个简单的 OkHttp POST 请求的示例代码: ``` OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); RequestBody body = RequestBody.create(mediaType, "{\"username\":\"admin\",\"password\":\"123456\"}"); Request request = new Request.Builder() .url("http://example.com/api/login") .post(body) .addHeader("Content-Type", "application/json") .build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); ``` 在这个示例中,我们首先创建了一个 OkHttpClient 对象,然后定义了请求体的数据格式(application/json),并创建了一个 RequestBody 对象来存储请求体的内容。接下来,我们创建了一个 Request 对象,并通过调用 post() 方法来指定请求方法为 POST,并将前面创建的 RequestBody 对象作为参数传入。在构造完整的 Request 对象后,我们可以通过 addHeader() 方法添加请求头信息。最后,我们通过调用 OkHttpClient 对象的 newCall() 方法来发送请求,并通过调用 execute() 方法来执行该请求并获取响应结果。最终,我们可以通过调用 response.body().string() 方法获取响应体中的内容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值