okhttp 网络请求添加请求头,get和post请求,表单提交 ,二进制流

本文介绍如何使用OkHttp为GET、POST及PUT请求添加请求头,并演示了如何发送包含二进制流(如图片)的POST请求。文章通过具体代码示例展示了不同类型的HTTP请求的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Okhttp 加请求头

适用于get请求 post请求 put请求(本人亲自测试)

get请求

String uri = Constant.URL + Constant.KNOWLEDGE + “?type=” + “1” + “&page=” + “15” + “&rows=” + “999”;
final Request.Builder builder = new Request.Builder().url(uri);
builder.addHeader(“sessionId”, sessionId); //将请求头以键值对形式添加,可添加多个请求头
Log.e(TAG, “initData: ” + sessionId);//大神不要笑,打印了一下传的值
//sessionId” 这个请求头文,sessionId 传的值
final Request request = builder.build();
final OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.build(); //设置各种超时时间
final Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失败的情况
Log.e(TAG,“onFailure:” +e );
}

        @Override
        public void onResponse(Call call, Response response) throws IOException {
        /**
         *打印后台返回结果
         */
            Log.e(TAG, "onResponse: " + response.body().string());



        }
    });

post 请求
表单方式提交数 + 请求头 + 二进制流上传(图片)

String uri = Constant.URL + Constant.URL_A2_B;
RequestBody req = RequestBody.create(MediaType.parse(“image/png”), String.valueOf
(Arrays.asList(imageItem)));//转化成数组

// RequestBody req = RequestBody.create(MediaType.parse(“image/png”), String.valueOf
(Arrays.asList(imageItem)));上面这里是把图片转成二进制流 在传输给服务器
//addFormDataPart 穿参数的方法 addPart h

    RequestBody requestBody = new MultipartBody.Builder()
            .addFormDataPart("workOrderContent", GDMS)
            .addFormDataPart("deviceCode", deviceCode)
            .addFormDataPart("workOrderType", workorderGDNX.getText().toString())
            .addFormDataPart("priority", workorderYXJ.getText().toString())
            .addFormDataPart("createUser", userid)
            .addFormDataPart("leader", userid)
            .addFormDataPart("workPlan", GZJH)
            .addFormDataPart("workOrderActual", "1")
            .addPart(req)
            .build();
    final Request request = new Request.Builder()
            .url(uri)
            .post(requestBody)
            .addHeader("sessionId", sessionId)//这个添加请求头文件和传输的值
            .build();
    final OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(30, TimeUnit.SECONDS)
            .connectTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(60, TimeUnit.SECONDS)
            .build(); //设置各种超时时间
    final Call call = client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            Log.e(TAG, "onResponse: " + response.body().string());

        }
    });

put请求

还没有用到put加请求头文件,你看了post 还不会put请求吗?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值