آموزش HttpURLConnection در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش HttpURLConnection در جاوا می پردازیم برای اینکه به سرور Request یا درخواست ارسال کنید (Post) یا آن را دیافت کنید (Get) لازم است از HttpURLConnection استفاده کنید پس در این آموزش به HttpURLConnection نیز خواهیم پرداخت از HttpURLConnection بیشتر به منظور Request زدن به سرور یا دریافت Response استفاده می شود با ما همراه باشید.
ابتدا متود GET را مورد بررسی قرار میدهم.
متود Get در جاوا
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package ir.programchi; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class HttpURLConnectionExample { private final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { HttpURLConnectionExample http = new HttpURLConnectionExample(); System.out.println("Testing 1 - Send Http GET request"); http.sendGet(); } private void sendGet() throws Exception { String url = "http://www.google.com/search?q=programchi"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // optional default is GET con.setRequestMethod("GET"); //add request header con.setRequestProperty("User-Agent", USER_AGENT); int responseCode = con.getResponseCode(); System.out.println("\nSending 'GET' request to URL : " + url); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); //print result System.out.println(response.toString()); } } |
برای اینکه عمل Get را انجام دهیم ابتدا یک متود به نام sendGet نوشتیم و یک Url برای گرفتن نتیجه تعریف کردیم. بعد از اینکار باید یک Connection بسازیم که با استفاده از HttpURLConnection این کار انجام شده است.
setRequestMethod کارش اینکه نوع Request یا Get ما را مشخص می کند به صورت Default بروی Get است ولی در بالا ما قرار دادیم تا درک مطلب بهتر شود.
setRequestProperty : تعیین می کنه که چه شخصی با چه مرورگری در حال انجام Request است در اینجا ما یک متغیر به این نام در بالا گرفتم و مقدار Mozilla/5.0 را در آن قرار دادیم.
getResponseCode : یک عدد برای ما برمی گرداند اگر 404 برگردد به منزله اینکه چیزی در آن Url وجود ندارد اگر 200 برگردد یعنی اینکه عملیات با موفقیت انجام شده است. (خطاهایی دیگیری نیز ممکن است اتفاق بیفتد مثل 400 = خطای ارسال درخواست بد Bad Request یا 500 = خطای سرور)
از BufferedReader برای قرار دادن اطلاعات برگشتی یا Response استفاده می شود.
خروجی کد بالا همانند زیر خواهد بود.
1 2 3 4 | Testing 1 - Send Http GET request Sending 'GET' request to URL : http://www.google.com/search?q=programchi Response Code : 200 Google search result... |
در ادامه متود Post را مورد بررسی قرار میدهم.
متود Post در جاوا
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package ir.progrmchi; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class HttpURLConnectionExample { private final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { HttpURLConnectionExample http = new HttpURLConnectionExample(); System.out.println("\nTesting 2 - Send Http POST request"); http.sendPost(); } private void sendPost() throws Exception { String url = "https://selfsolve.apple.com/wcResults.do"; URL obj = new URL(url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); //add reuqest header con.setRequestMethod("POST"); con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); String urlParameters = "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345"; // Send post request con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); int responseCode = con.getResponseCode(); System.out.println("\nSending 'POST' request to URL : " + url); System.out.println("Post parameters : " + urlParameters); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); //print result System.out.println(response.toString()); } } |
در بالا نیز همانند قبل است فقط برحی ویژگی ها اضافه شده است که آنها را نیز توضیح خواهیم داد.
در اینجا ما باید به Url داده را اضافه کنیم چون می خواهیم عمل Post را انجام دهیم برای اینکار ابتدا باید Connection خود را برابر با Post قرار دهیم سپس یک DataOutputStream ایجاد می کنیم تا بتوانیم داده را به Url اضافه کنیم بعد از اینکار نیز رویه کار همانند قبل است.
نتیجه کد بالا همانند زیر خواهد بود.
1 2 3 4 5 | Testing 2 - Send Http POST request Sending 'POST' request to URL : https://selfsolve.apple.com/wcResults.do Post parameters : sn=C02G8416DRJM&cn=&locale=&caller=&num=12345 Response Code : 200 Apple product detail... |
در آموزش بعدی HttpClient را مورد بررسی قرار خواهیم داد.
این آموزش هم به پایان رسید.
موفق باشید.
یک پاسخ به “آموزش HttpURLConnection در جاوا”