Avatar ·

OkHttp और Kotlin कोरूटीन में "Inappropriate blocking method call" त्रुटि को कैसे ठीक करें?

नमस्ते! मैं Kotlin में एक नौसिखिया डेवलपर हूँ और कोरूटीन के अंदर OkHttp का उपयोग करके HTTP अनुरोध करने का प्रयास कर रहा हूँ। मेरे पास यह कोड है: ```kotlin suspend fun fetchData(): String { val client = OkHttpClient() val request = Request.Builder() .url("https://api.example.com/data") .build() val response = client.newCall(request).execute() // यहाँ त्रुटि! return response.body?.string() ?: "" } ``` लेकिन कंपाइलर या लिंटर (Detekt, IntelliJ IDEA) चेतावनी देता है: "Inappropriate blocking method call"। मैं असिंक्रोनसिटी के लिए कोरूटीन का उपयोग कर रहा हूँ, लेकिन `execute()` मेथड वर्तमान थ्रेड को ब्लॉक कर देती है। कोरूटीन में HTTP अनुरोध सही तरीके से कैसे करें ताकि थ्रेड ब्लॉक न हो? मैंने `suspendCancellableCoroutine` के बारे में सुना है, लेकिन समझ नहीं आता कि इसे कैसे लागू करें। साथ ही, JSON पार्सिंग के लिए Moshi का उपयोग कर रहा हूँ। कृपया समझने में मदद करें। समस्या: मैं कोरूटीन की असिंक्रोनसिटी बनाए रखना चाहता हूँ, लेकिन OkHttp डिफ़ॉल्ट रूप से केवल सिंक्रोनस `execute()` या कॉलबैक `enqueue()` प्रदान करता है। कौन सा तरीका अपनाऊँ?