Curl से JavaScript कन्वर्टर

curl कमांड्स को JavaScript कोड में बदलें - API अनुरोधों के लिए तुरंत उपयोग करने योग्य JavaScript fetch/axios कोड जनरेट करें

गोपनीयता सूचना: यह प्रोफेशनल टूल एंटरप्राइज-ग्रेड गोपनीयता सुरक्षा के साथ JavaScript कोड में सुरक्षित रूपांतरण प्रदान करता है। हम आपके द्वारा सबमिट किए गए किसी भी डेटा को स्टोर नहीं करते हैं, जिससे आपके API डेवलपमेंट कार्य के लिए पूर्ण गोपनीयता सुनिश्चित होती है।

JavaScript कोड जनरेटर

// JavaScript code will appear here
// Example:
// Using fetch API
fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'test'
  })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

JavaScript API टेस्टिंग के लिए सामान्य curl कमांड्स

यहां कुछ सामान्य curl कमांड्स हैं जिन्हें आप JavaScript कोड में बदल सकते हैं:

JavaScript Fetch और Axios उदाहरण

JavaScript HTTP अनुरोध करने के कई तरीके प्रदान करता है। यहां Fetch API और Axios दोनों का उपयोग करके सामान्य पैटर्न हैं:

JavaScript Fetch के साथ फाइल अपलोड

const formData = new FormData();
formData.append('file', document.querySelector('#fileInput').files[0]);

fetch('https://api.example.com/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

टाइमआउट और एरर हैंडलिंग के साथ JavaScript Fetch

const controller = new AbortController();
const signal = controller.signal;

// Set timeout of 5 seconds
const timeoutId = setTimeout(() => controller.abort(), 5000);

fetch('https://api.example.com/data', {
  method: 'GET',
  signal: signal
})
.then(response => {
  if (!response.ok) {
    throw new Error(`HTTP error! Status: ${response.status}`);
  }
  clearTimeout(timeoutId);
  return response.json();
})
.then(data => console.log(data))
.catch(error => {
  if (error.name === 'AbortError') {
    console.error('Request timed out');
  } else {
    console.error('Error:', error);
  }
});

JavaScript कोड कन्वर्टर का उपयोग कैसे करें

1. बेसिक उपयोग

अपना curl कमांड कॉपी करें → इनपुट बॉक्स में पेस्ट करें → तुरंत JavaScript कोड प्राप्त करें

2. उचित एरर हैंडलिंग इम्प्लीमेंट करें

axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // Server returned an error status code
      console.error(`Server error: ${error.response.status}`);
      console.error(error.response.data);
    } else if (error.request) {
      // Request was made but no response received
      console.error('Network error - no response received');
    } else {
      // Error in request setup
      console.error('Request error:', error.message);
    }
  });

3. बेहतर UX के लिए रिक्वेस्ट कैंसलेशन का उपयोग करें

// Using fetch with AbortController
const controller = new AbortController();
const signal = controller.signal;

// Cancel request after 5 seconds
setTimeout(() => controller.abort(), 5000);

fetch('https://api.example.com/data', { signal })
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => {
    if (error.name === 'AbortError') {
      console.log('Request was cancelled');
    } else {
      console.error('Error:', error);
    }
  });

// Using axios with CancelToken
const source = axios.CancelToken.source();

// Cancel request after 5 seconds
setTimeout(() => {
  source.cancel('User cancelled the request');
}, 5000);

axios.get('https://api.example.com/data', {
  cancelToken: source.token
})
.then(response => console.log(response.data))
.catch(error => {
  if (axios.isCancel(error)) {
    console.log('Request cancelled:', error.message);
  } else {
    console.error('Error:', error);
  }
});

JavaScript HTTP अनुरोधों के बारे में अक्सर पूछे जाने वाले प्रश्न

प्रश्न: JavaScript की fetch API curl से कैसे भिन्न है?

उत्तर: जबकि curl HTTP अनुरोध करने के लिए एक कमांड-लाइन टूल है, JavaScript की fetch API वेब ब्राउज़र और Node.js के भीतर एक प्रोग्रामेटिक इंटरफेस प्रदान करती है। Fetch एसिंक्रोनस ऑपरेशन को हैंडल करने के लिए प्रॉमिस का उपयोग करता है, जबकि curl सिंक्रोनस रूप से एक्जीक्यूट होता है। इसके अतिरिक्त, fetch स्वचालित रूप से रीडायरेक्ट का पालन करता है और डिफ़ॉल्ट रूप से कुकीज नहीं भेजता है, जबकि curl अन्यथा कॉन्फिगर न किए जाने पर दोनों करता है।

प्रश्न: fetch और axios के बीच मुख्य अंतर क्या हैं?

उत्तर: Fetch आधुनिक ब्राउज़र में बिल्ट-इन है लेकिन एरर हैंडलिंग के लिए अधिक बॉयलरप्लेट की आवश्यकता होती है और स्वचालित रूप से JSON रिस्पॉन्स को पार्स नहीं करता है। Axios एक लाइब्रेरी है जो स्वचालित JSON पार्सिंग, बेहतर एरर हैंडलिंग, रिक्वेस्ट/रिस्पॉन्स इंटरसेप्शन और बिल्ट-इन रिक्वेस्ट कैंसलेशन के साथ अधिक फीचर-रिच API प्रदान करती है। Axios ब्राउज़र और Node.js एनवायरनमेंट में भी लगातार काम करता है।

प्रश्न: मैं curl कमांड्स को JavaScript में बदलते समय CORS मुद्दों को कैसे हैंडल करूं?

उत्तर: CORS (क्रॉस-ओरिजिन रिसोर्स शेयरिंग) प्रतिबंध ब्राउज़र-आधारित JavaScript पर लागू होते हैं, लेकिन curl पर नहीं। curl कमांड्स को JavaScript में बदलते समय, आप CORS एरर का सामना कर सकते हैं यदि सर्वर उपयुक्त CORS हेडर्स शामिल नहीं करता है। समाधानों में शामिल हैं: CORS प्रॉक्सी का उपयोग करना, API मालिक से CORS हेडर्स सक्षम करने का अनुरोध करना, अपने एप्लिकेशन में सर्वर-साइड प्रॉक्सी इम्प्लीमेंट करना, या ऐसे अनुरोधों के लिए Node.js का उपयोग करना जो ब्राउज़र में नहीं चलते हैं।

प्रश्न: मैं JavaScript में curl के -k/--insecure फ्लैग का अनुकरण कैसे करूं?

उत्तर: ब्राउज़र-आधारित JavaScript में, आप SSL सर्टिफिकेट वैलिडेशन को बायपास नहीं कर सकते हैं क्योंकि यह ब्राउज़र द्वारा लागू की गई एक सुरक्षा विशेषता है। Node.js में, आप HTTPS एजेंट कॉन्फिगरेशन में rejectUnauthorized: false विकल्प सेट कर सकते हैं। हालांकि, यह प्रोडक्शन में दृढ़ता से हतोत्साहित किया जाता है क्योंकि यह सुरक्षा से समझौता करता है। उदाहरण: const https = require('https'); const agent = new https.Agent({rejectUnauthorized: false});

प्रश्न: मैं JavaScript में curl के -F फ्लैग के समान फाइल अपलोड को कैसे हैंडल करूं?

उत्तर: JavaScript में curl के -F फ्लैग के समान फाइल अपलोड को हैंडल करने के लिए, FormData API का उपयोग करें। उदाहरण के लिए: const formData = new FormData(); formData.append('file', fileInput.files[0]); formData.append('field', 'value'); fetch('https://api.example.com/upload', { method: 'POST', body: formData }); यह दृष्टिकोण fetch और axios दोनों के साथ काम करता है।

प्रश्न: मैं JavaScript में curl के --connect-timeout जैसे रिक्वेस्ट टाइमआउट कैसे सेट करूं?

उत्तर: fetch API के साथ, setTimeout के साथ AbortController का उपयोग करें: const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); fetch(url, { signal: controller.signal }); axios के साथ, timeout विकल्प का उपयोग करें: axios.get(url, { timeout: 5000 }); दोनों दृष्टिकोण आपको नियंत्रित करने की अनुमति देते हैं कि अनुरोध को रद्द करने से पहले कितनी देर तक प्रतीक्षा करनी है।

प्रश्न: मैं curl के वर्बोज़ मोड की तुलना में JavaScript में नेटवर्क अनुरोधों को कैसे डीबग करूं?

उत्तर: जबकि curl विस्तृत अनुरोध/प्रतिक्रिया जानकारी के लिए -v/--verbose फ्लैग प्रदान करता है, JavaScript अलग-अलग डीबगिंग टूल प्रदान करता है। ब्राउज़र में, अनुरोधों, हेडर्स, पेलोड और टाइमिंग का निरीक्षण करने के लिए DevTools में नेटवर्क टैब का उपयोग करें। प्रोग्रामेटिक डीबगिंग के लिए, आप अनुरोध/प्रतिक्रिया विवरण लॉग करने के लिए axios इंटरसेप्टर्स का उपयोग कर सकते हैं या fetch के साथ कस्टम लॉगिंग इम्प्लीमेंट कर सकते हैं। Node.js में, आप 'http-debug' जैसी लाइब्रेरी का उपयोग कर सकते हैं या NODE_DEBUG=http एनवायरनमेंट वेरिएबल सेट कर सकते हैं।

JavaScript API टेस्टिंग के लिए Curl कमांड रेफरेंस

JavaScript के साथ प्रभावी API टेस्टिंग के लिए curl कमांड्स को समझना आवश्यक है। यहां सामान्य curl विकल्पों का एक त्वरित संदर्भ है जिसे हमारा कन्वर्टर समर्थित करता है:

बेसिक curl सिंटैक्स

curl [options] [URL]

सामान्य curl विकल्प

जटिल curl कमांड्स को कन्वर्ट करना

हमारा JavaScript कन्वर्टर मल्टीपल हेडर्स, ऑथेंटिकेशन, डेटा पेलोड और विभिन्न विकल्पों सहित जटिल curl कमांड्स को संभालता है। बस अपना curl कमांड पेस्ट करें और Fetch API या Axios का उपयोग करके क्लीन, मॉडर्न JavaScript कोड प्राप्त करें।

JavaScript HTTP बेस्ट प्रैक्टिसेज

JavaScript के Fetch API या Axios के साथ काम करते समय, कुशल और सुरक्षित API इंटरैक्शन के लिए इन बेस्ट प्रैक्टिसेज का पालन करें:

1. बेहतर पठनीयता के लिए async/await का उपयोग करें

// Using async/await with fetch
async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    
    const data = await response.json();
    console.log(data);
    return data;
  } catch (error) {
    console.error('Fetch error:', error);
  }
}

// Using async/await with axios
async function fetchDataWithAxios() {
  try {
    const response = await axios.get('https://api.example.com/data');
    console.log(response.data);
    return response.data;
  } catch (error) {
    console.error('Axios error:', error);
  }
}

2. रिक्वेस्ट रीट्राई मैकेनिज्म इम्प्लीमेंट करें

async function fetchWithRetry(url, options = {}, retries = 3, backoff = 300) {
  try {
    const response = await fetch(url, options);
    return response;
  } catch (error) {
    if (retries <= 1) throw error;
    
    await new Promise(resolve => setTimeout(resolve, backoff));
    return fetchWithRetry(url, options, retries - 1, backoff * 2);
  }
}

3. पुन: प्रयोज्य API क्लाइंट्स बनाएं

// Create configurable API client with axios
const apiClient = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  }
});

// Add request interceptors
apiClient.interceptors.request.use(config => {
  // Do something before request is sent
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
}, error => {
  return Promise.reject(error);
});

// Add response interceptors
apiClient.interceptors.response.use(response => {
  // Any status code within 2xx range
  return response;
}, error => {
  // Handle 401 Unauthorized errors
  if (error.response && error.response.status === 401) {
    console.log('Unauthorized, please login again');
  }
  return Promise.reject(error);
});

// Use the API client
apiClient.get('/users')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

4. कॉन्करेंट रिक्वेस्ट्स को हैंडल करें

// Using Promise.all with fetch
async function fetchMultipleResources() {
  try {
    const [users, products, orders] = await Promise.all([
      fetch('https://api.example.com/users').then(res => res.json()),
      fetch('https://api.example.com/products').then(res => res.json()),
      fetch('https://api.example.com/orders').then(res => res.json())
    ]);
    
    console.log({ users, products, orders });
    return { users, products, orders };
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

// Using axios.all for concurrent requests
async function fetchMultipleResourcesWithAxios() {
  try {
    const [users, products, orders] = await axios.all([
      axios.get('https://api.example.com/users'),
      axios.get('https://api.example.com/products'),
      axios.get('https://api.example.com/orders')
    ]);
    
    console.log({
      users: users.data,
      products: products.data,
      orders: orders.data
    });
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

5. रिक्वेस्ट कैशिंग इम्प्लीमेंट करें

// Simple in-memory cache implementation
const cache = new Map();

async function fetchWithCache(url, options = {}, ttl = 60000) {
  const cacheKey = `${url}-${JSON.stringify(options)}`;
  
  // Check cache
  const cachedItem = cache.get(cacheKey);
  if (cachedItem && Date.now() < cachedItem.expiry) {
    console.log('Using cached data');
    return cachedItem.data;
  }
  
  // If no cache or expired, make the request
  const response = await fetch(url, options);
  const data = await response.json();
  
  // Update cache
  cache.set(cacheKey, {
    data,
    expiry: Date.now() + ttl
  });
  
  return data;
}
" } }, { "@type": "Question", "name": "मैं फाइल अपलोड वाले curl कमांड को JavaScript में कैसे बदलूं?", "acceptedAnswer": { "@type": "Answer", "text": "JavaScript में फाइल अपलोड के लिए, आपको FormData API का उपयोग करने की आवश्यकता होगी। हमारा कन्वर्टर -F या --form विकल्पों वाले curl कमांड्स को संभालता है और fetch या axios का उपयोग करके उपयुक्त JavaScript कोड जनरेट करता है।" } } ] }