curl कमांड्स को Java कोड में बदलें - API अनुरोधों के लिए तुरंत उपयोग करने योग्य Java HttpClient कोड जनरेट करें
// Java HttpClient code will appear here // Example: import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; public class HttpClientExample { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .connectTimeout(Duration.ofSeconds(10)) .build(); String jsonBody = "{\"name\": \"test\"}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(jsonBody)) .build(); HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); } }
यहां कुछ सामान्य curl कमांड्स हैं जिन्हें आप Java कोड में बदल सकते हैं:
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
Java की HttpClient लाइब्रेरी (Java 11 में पेश की गई) HTTP अनुरोध करने का एक शक्तिशाली और आधुनिक तरीका है। यहां कुछ सामान्य Java HttpClient पैटर्न हैं:
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FileUploadExample { public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .build(); Path path = Paths.get("document.pdf"); String boundary = "----WebKitFormBoundary" + System.currentTimeMillis(); String contentType = "multipart/form-data; boundary=" + boundary; // Create multipart form data String data = "--" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"file\"; filename=\"" + path.getFileName() + "\"\r\n" + "Content-Type: application/pdf\r\n\r\n"; byte[] fileData = Files.readAllBytes(path); byte[] requestBody = new byte[data.getBytes().length + fileData.length + ("\r\n--" + boundary + "--\r\n").getBytes().length]; System.arraycopy(data.getBytes(), 0, requestBody, 0, data.getBytes().length); System.arraycopy(fileData, 0, requestBody, data.getBytes().length, fileData.length); System.arraycopy(("\r\n--" + boundary + "--\r\n").getBytes(), 0, requestBody, data.getBytes().length + fileData.length, ("\r\n--" + boundary + "--\r\n").getBytes().length); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/upload")) .header("Content-Type", contentType) .header("Authorization", "Bearer YOUR_TOKEN_HERE") .POST(HttpRequest.BodyPublishers.ofByteArray(requestBody)) .build(); HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; public class ErrorHandlingExample { public static void main(String[] args) { HttpClient client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .connectTimeout(Duration.ofSeconds(5)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .timeout(Duration.ofSeconds(5)) .GET() .build(); try { HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); int statusCode = response.statusCode(); if (statusCode >= 200 && statusCode < 300) { System.out.println("Success: " + response.body()); } else { System.out.println("Error: " + statusCode + " - " + response.body()); } } catch (IOException e) { System.out.println("Connection error: " + e.getMessage()); } catch (InterruptedException e) { System.out.println("Request interrupted: " + e.getMessage()); Thread.currentThread().interrupt(); } catch (Exception e) { System.out.println("Error making request: " + e.getMessage()); } } }
अपना curl कमांड कॉपी करें → इनपुट बॉक्स में पेस्ट करें → कन्वर्ट किया गया Java HttpClient कोड प्राप्त करें
हमारा कन्वर्टर जटिल curl कमांड्स को समर्थित करता है और उन्हें HttpClient लाइब्रेरी का उपयोग करके क्लीन, कुशल Java कोड में अनुवादित करता है
हमारा टूल इन सामान्य curl विकल्पों को संभालता है और उन्हें उपयुक्त Java HttpClient कोड में बदलता है:
उत्तर: जनरेट किए गए Java HttpClient कोड के लिए Java 11 या उससे ऊपर की आवश्यकता होती है। पुराने Java वर्जन के लिए, Apache HttpClient या OkHttp जैसे वैकल्पिक HTTP क्लाइंट्स पर विचार करें।
उत्तर: बेसिक जनरेट किया गया कोड IOException और InterruptedException के लिए try/catch ब्लॉक्स शामिल करता है। प्रोडक्शन कोड के लिए, आप विभिन्न HTTP स्टेटस कोड्स के लिए अधिक विशिष्ट एरर हैंडलिंग जोड़ना चाह सकते हैं।
उत्तर: HttpClient लाइब्रेरी रिस्पॉन्स प्रोसेसिंग के लिए कई BodyHandlers प्रदान करती है। टेक्स्ट रिस्पॉन्स के लिए HttpResponse.BodyHandlers.ofString(), बाइनरी डेटा के लिए ofInputStream(), या रॉ बाइट्स के लिए ofByteArray() का उपयोग करें।
उत्तर: किसी बाहरी लाइब्रेरी की आवश्यकता नहीं है। HttpClient Java 11 से Java स्टैंडर्ड लाइब्रेरी का हिस्सा है। JSON प्रोसेसिंग के लिए, आप Jackson या Gson जैसी लाइब्रेरी जोड़ना चाह सकते हैं।
उत्तर: Java में फाइल अपलोड के लिए, आपको HttpClient के साथ मल्टीपार्ट फॉर्म डेटा का उपयोग करने की आवश्यकता होगी। हमारा कन्वर्टर -F
या --form
विकल्पों वाले curl कमांड्स को संभालता है और उपयुक्त Java कोड जनरेट करता है।
उत्तर: Java की HttpClient लाइब्रेरी HttpClient.Builder.cookieHandler() मेथड के माध्यम से कुकी हैंडलिंग प्रदान करती है। जब आप कुकी हैंडलिंग (-b
या --cookie
का उपयोग करके) वाले curl कमांड्स को कन्वर्ट करते हैं, तो हमारा टूल कुकीज को ठीक से प्रबंधित करने वाला Java कोड जनरेट करता है।
उत्तर: जबकि curl त्वरित कमांड-लाइन API टेस्टिंग के लिए उत्कृष्ट है, Java HttpClient एक प्रोग्रामेटिक दृष्टिकोण प्रदान करता है जो आपके Java एप्लिकेशन के साथ एकीकृत होता है। curl को Java में बदलना Java डेवलपमेंट में टेस्टिंग और इम्प्लीमेंटेशन के बीच की खाई को पाटने में मदद करता है।
Java के साथ प्रभावी API टेस्टिंग के लिए curl कमांड्स को समझना आवश्यक है। यहां सामान्य curl विकल्पों का एक त्वरित संदर्भ है जिसे हमारा कन्वर्टर समर्थित करता है:
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionहमारा Java कन्वर्टर मल्टीपल हेडर्स, ऑथेंटिकेशन, डेटा पेलोड और विभिन्न विकल्पों सहित जटिल curl कमांड्स को संभालता है। बस अपना curl कमांड पेस्ट करें और HttpClient लाइब्रेरी का उपयोग करके क्लीन, मॉडर्न Java कोड प्राप्त करें।
Java HttpClient लाइब्रेरी के साथ काम करते समय, कुशल और सुरक्षित API इंटरैक्शन के लिए इन बेस्ट प्रैक्टिसेज का पालन करें:
import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; public class HttpClientReuseExample { // Create a single HttpClient instance for the application private static final HttpClient httpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .build(); public static void main(String[] args) throws Exception { // First request HttpRequest request1 = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/users")) .GET() .build(); HttpResponseresponse1 = httpClient.send(request1, HttpResponse.BodyHandlers.ofString()); // Second request (uses same client) HttpRequest request2 = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/products")) .GET() .build(); HttpResponse response2 = httpClient.send(request2, HttpResponse.BodyHandlers.ofString()); } }
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpTimeoutException; public class ErrorHandlingBestPractice { public static void main(String[] args) { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .GET() .build(); try { HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); switch (response.statusCode()) { case 200: case 201: System.out.println("Success: " + response.body()); break; case 400: System.out.println("Bad request: " + response.body()); break; case 401: case 403: System.out.println("Authentication error: " + response.statusCode()); break; case 404: System.out.println("Resource not found"); break; case 500: case 503: System.out.println("Server error: " + response.statusCode()); break; default: System.out.println("Unexpected status: " + response.statusCode()); } } catch (HttpTimeoutException e) { System.out.println("Request timed out: " + e.getMessage()); } catch (IOException e) { System.out.println("Network error: " + e.getMessage()); } catch (InterruptedException e) { System.out.println("Request interrupted"); Thread.currentThread().interrupt(); } } }
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.concurrent.CompletableFuture; public class AsyncRequestExample { public static void main(String[] args) { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.example.com/data")) .GET() .build(); CompletableFuture> futureResponse = client.sendAsync(request, HttpResponse.BodyHandlers.ofString()); futureResponse .thenApply(HttpResponse::body) .thenAccept(System.out::println) .exceptionally(e -> { System.err.println("Error: " + e.getMessage()); return null; }); // Do other work while the request is processing System.out.println("Request sent asynchronously..."); // Wait for the request to complete if needed futureResponse.join(); } }