ورود

View Full Version : ایجاد یک درخواست HTTP؟



mahdi.rajabi
دوشنبه 21 آبان 1386, 23:00 عصر
سلام دوستان
من می خوام بدون استفاده از redirect کردن response به یک URL از طریق وب سایت خودم request بفرستم. کسی می تونه کمکم کنه؟ :تشویق:

pooyanm
سه شنبه 22 آبان 1386, 07:13 صبح
این متد

java.net.URL.openConnection()

برای آدرسهایی که پروتکل اونها http باشه یک نمونه از java.net.HttpURLConnection بر می گردونه که با متد connect به آدرس مراجعه می کنه

mahdi.rajabi
سه شنبه 22 آبان 1386, 08:38 صبح
سلام
من از interface که گفتی استفاده کردم ولی هیچ جوابی ازش نگرفتم. من از کد زیر برای انجام این کار استفاده کردم. URL استفاده شده مربوط به یک Servlet هست که اطلاعاتی در Database ذخیره میکنه. ولی بعد از اجرا در database هیچ خبری از داده ها نیست. کمکم کنین :کف:



URL url;
HttpURLConnection urlConn;
DataOutputStream cgiInput;

try {

url = new URL("http://localhost:8080/ControlPanel/test.do?");
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDoOutput(true);
urlConn.connect();

} catch (MalformedURLException e) {

e.printStackTrace(); .

} catch (IOException e) {

e.printStackTrace();

}

pooyanm
سه شنبه 22 آبان 1386, 11:45 صبح
باید بایت به بایت از مجرای ورودی بخونی و پردازش مورد نظر را انجام بدی


InputStream in = connection.getInputStream();
try {
read(new InputStreamReader(in));
} catch (IOException ioe) {}

mahdi.rajabi
پنج شنبه 24 آبان 1386, 08:40 صبح
خوب اخه من هیچ اطلاعاتی نمی خوام بخونم. فقط میخوام یه request به Servlet مورد نظر بفرستم و ازش بخوام تا اجرا بشه. :متفکر:

zehs_sha
پنج شنبه 24 آبان 1386, 14:17 عصر
try {

// Construct data
String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");

// Send data
URL url = new URL("http://hostname:80/cgi");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
// Process line...
}
wr.close();
rd.close();
} catch (Exception e) {
}
و اینجا رو ببین
http://www.exampledepot.com/egs/java.net/pkg.html

pooyanm
پنج شنبه 24 آبان 1386, 17:54 عصر
روش کار همینی هست که گفته شد حتی اگه جوابی بازگردانده نشه بازهم باید سرولت مربوطه فراخوانی و اجرا بشه مگر اینکه مشکل از جایی دیگه بروز کنه

mahdi.rajabi
پنج شنبه 24 آبان 1386, 21:31 عصر
از کمکتون ممنون. مشکلم با راه نمایی هاتون حل شد.:قلب: