天天看點

okhttp 網絡請求添加請求頭,get和post請求,表單送出 ,二進制流

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請求嗎?