Apache HttpCilent: проблема тайм-аута в корпоративной сети

Этот вопрос стоит 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 не является оплачиваемой услугой, поэтому вам не имеет смысла предлагать валюту за помощь (если только это не была шутка).

Mena 03.04.2018 16:09

Большое спасибо, Мена, я решил проблему благодаря вашей идее взглянуть на заголовок

Mano Jad 03.04.2018 18:02

хорошие вещи, рад помочь :)

Mena 03.04.2018 18:03
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
24
0

Другие вопросы по теме