Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menamatkan Permintaan HTTP POST secara Pramatang di Golang?

Bagaimana untuk Menamatkan Permintaan HTTP POST secara Pramatang di Golang?

Linda Hamilton
Lepaskan: 2024-11-25 18:28:11
asal
480 orang telah melayarinya

How to Prematurely Terminate an HTTP POST Request in Golang?

Penamatan Pramatang Permintaan HTTP POST di Golang

Dalam konteks melaksanakan klien tinjauan panjang menggunakan http.Client, keperluan kerap timbul untuk menutup atau membatalkan permintaan HTTP POST secara pramatang. Walaupun pendekatan tradisional melibatkan menutup badan tindak balas (resp.Body.Close()) dalam goroutine yang berasingan, ia memperkenalkan komplikasi kerana pelanggan biasanya disekat semasa membaca respons.

Walau bagaimanapun, strategi pilihan semasa untuk pembatalan permintaan melibatkan penggunaan konteks dengan tarikh akhir atau yang boleh dibatalkan mengikut keperluan. Ini dicapai melalui kaedah http.Request.WithContext.

Begini cara anda boleh memasukkan strategi ini ke dalam kod anda:

import (
    "context"
    "net/http"
)

// ...

// Create a context with a deadline or that can be canceled
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()

req, err := http.NewRequest("POST", "http://example.com", bytes.NewBuffer(jsonPostBytes))
// ...

// Add the context to the request
req = req.WithContext(ctx)

// Perform the request
resp, err := client.Do(req)
Salin selepas log masuk

Dengan menetapkan konteks pada permintaan, sebarang operasi berikutnya pada permintaan itu akan menghormati tarikh akhir atau keadaan pembatalan konteks itu. Contohnya, jika konteks dibatalkan sebelum permintaan selesai, pengangkutan asas akan menerima ralat dan permintaan akan dibatalkan. Ini menyediakan mekanisme yang jelas dan ringkas untuk menamatkan permintaan HTTP POST daripada pihak pelanggan secara pramatang.

Atas ialah kandungan terperinci Bagaimana untuk Menamatkan Permintaan HTTP POST secara Pramatang di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan