यदि हम गो से दिए गए URL को खोलने का प्रयास करते हैं, तो यह काफी आसान है जैसा कि नीचे दिए गए कोड में दिखाया गया है (मैक के लिए):

exec.Command("open", "https://google.com").Run()

लेकिन अगर यूआरएल में पैरामीटर हैं तो हम ऐसा कैसे करते हैं?

उदाहरण के लिए, यदि हम एक फेसबुक लॉगिन यूआरएल खोलने का प्रयास करते हैं: "https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com", बाहर निकलने के साथ कमांड विफल हो जाता है स्थिति 1.

यह तब भी सच है जब हम विशेष वर्णों के लिए बैकस्लैश शामिल करते हैं?, & और =। यूआरएल https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com में बदल जाता है।

यदि हम उपयोग करते हैं तो उपरोक्त URL डिफ़ॉल्ट ब्राउज़र में खुलता है

open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com

टर्मिनल में कमांड। लेकिन गो से ऐसा करने पर यह विफल हो जाता है!

क्या गो से भी ऐसा ही करने का कोई तरीका है?

और हाँ, यह exec.Command("open", "-a", "safari", url) का उपयोग करके किया जा सकता है। लेकिन यह डिफ़ॉल्ट ब्राउज़र नहीं खोलेगा, जहां उपयोगकर्ता के साइन इन होने की सबसे अधिक संभावना है।

0
Metatrix 1 सितंबर 2021, 08:33

2 जवाब

सबसे बढ़िया उत्तर

यह वास्तव में बैकस्लैश के बिना काम करता है। टर्मिनल में बैकस्लैश की आवश्यकता होती है, क्योंकि ब्राउजर को स्ट्रिंग भेजने से पहले टर्मिनल आंतरिक रूप से बैकस्लैश से बच जाता है। लेकिन जाने के मामले में, यह ब्राउज़र को मूल स्ट्रिंग भेजता है।

गो उपयोग में:

exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com")

टर्मिनल कमांड लाइन से:

open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com
0
Metatrix 1 सितंबर 2021, 12:22

बैकस्लैश जोड़ने का प्रयास करें (\)

exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth\\?client_id/\\=123456/\\&redirect_uri/\\=https://example/com").Run()
-1
harry 1 सितंबर 2021, 08:47