Этот вопрос стоит 50 долларов :)
У меня есть простое приложение Java, которое извлекает некоторые данные с удаленного сервера с помощью HTTP-запроса. Когда я запускаю его из дома, он работает, а когда я запускаю его в своем университете, он не работает, он выдает ошибку: «Тайм-аут соединения: соединение».
Я могу получить доступ к URL-адресу удаленного сервера из навигатора и протестировать сообщение / получение, и оно работает;
Если это проблема брандмауэра, то почему навигатор может получить доступ к серверу и получить данные?
Вот мой код:
package API;
import Controllers.Computed_IndicatorController;
import Controllers.DB_Connection_Factory;
import Controllers.DatasetController;
import Controllers.MessageController;
import Controllers.UserController;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.Vector;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;
import Entities.Computed_Indicator;
import Entities.Dataset;
import Entities.Message;
import Entities.User;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
public class GetTweets1 {
private static final String USER_AGENT = "Mozilla/5.0";
public GetTweets1(){}
public static void RetrieveAndStoreMessages() throws IOException, JSONException, SQLException{
String url = "...my URL...";
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
//request.addHeader("User-Agent", USER_AGENT);
request.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials("account", "password"), "UTF-8", false));//("account", "password"), "UTF-8", false));
//request.addHeader("Accept" ,"application/json; charset=utf-8");
HttpResponse response = client.execute(request);
}
public static void main (String args[]) throws Exception{
RetrieveAndStoreMessages();
}
}
Не могли бы вы помочь мне решить эту проблему? Я готов отдать счет в 50 долларов тому, кто решит эту проблему за меня.
Большое спасибо, Мена, я решил проблему благодаря вашей идее взглянуть на заголовок
хорошие вещи, рад помочь :)




У вас есть несколько вариантов, например, проверка того, что запрос, отправленный программно, действительно совпадает с запросом, отправленным вашим браузером, с точки зрения заголовков, аутентификации и т. д. Вы также можете устранить неполадки на своем сервере, попробовав удаленный сокет отладки или проверив журналы в зависимости от доступа, и т. д. Обратите внимание, что SO не является оплачиваемой услугой, поэтому вам не имеет смысла предлагать валюту за помощь (если только это не была шутка).