دو تا سوال دارم (اولی حل شد)
سلام دوستان
من وقتی میخوام از طریق نرم افزارم به صفحه ی مورد نظرم که در یک هاست رایگان قرار داره وصل شم و سورسش رو بخونم کد ارور 403 رو برمیگردونه ولی وقتی از طریق Browser گوشی یا کامپیوتر میرم بدون هیچ مشکلی متصل میشه.
HttpClient client = new DefaultHttpClient();
HttpGet method = new HttpGet("page morede nazar");
try {
HttpResponse response = client.execute(method);
int code = response.getStatusLine().getStatusCode();
Toast.makeText(ActivityMain.this, "code: " + code, Toast.LENGTH_LONG).show();
InputStream stream = response.getEntity().getContent();
String result = inputstreamToString(stream);
Log.i("mytag", "result : " + result);
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
البته تا امروز چنین مشکلی نداشتم و به درستی کار میکرد ولی امروز اینجوری شده، آیا در هاست تنظیمات خاصی وجود داره؟ یا مثلاً من در برنامم برای اینکه همیشه به درستی بتونم به صفحه ی موردنظر وصل شم بهتره از متد httpGet استفاده کنم و یا httpPost و یا راه بهتر دیگری وجود داره؟
حالا اومدم و از این طریق وصل شدم و به درستی وصل میشه و کد 200 رو برمیگردونه
try {
URL url = new URL("page morede nazar");
try {
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();
int code = connection.getResponseCode();
Toast.makeText(ActivityMain.this, "code: " + code, Toast.LENGTH_LONG).show();
}
catch (IOException e) {
e.printStackTrace();
}
}
catch (MalformedURLException e) {
e.printStackTrace();
}
فرق این دو روش چیه؟ چرا در روش اول ارور 403 برمیگردونه ولی در روش دوم کد 200 ؟
سوال دوم اینکه وقتی میخوام با کلاس فایل دانلودر استاد یک فایلی رو از همین هاست رایگان دانلود کنم شروع به دانلود میکنه و یهو بدون هیچ دلیلی وسط دانلود میپره تو catch و تو لاگ کت ارور socketTimeout میده ، بدون اینکه setConnectTimeout و setReadTimeout براش تعریف کرده باشم.
میخواستم بپرسم ممکنه خود هاست connection رو قطع کنه؟ یعنی خود هاست timeout داشته باشه؟ (بدلیل رایگان بودنش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .