title: How to fix SocketException while connecting to Telegram Bot API in Java App
body: <p>I'm working on my Telegram bot. I know, in my countries Telegram is locked, so I decide to connect to Telegram Bot API through proxy. When I try to run this code:</p>
  <pre><code>import org.telegram.telegrambots.ApiContextInitializer;
  import org.telegram.telegrambots.bots.DefaultBotOptions;
  import org.telegram.telegrambots.meta.ApiContext;
  import org.telegram.telegrambots.meta.TelegramBotsApi;
  import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
  
  public class SharperBotApp {
      private static final String PROXY_HOST = &quot;89.200.150.35&quot;;
      private static final int PROXY_PORT = 37499;//TODO
  
      public static void main(String[] args) {
          ApiContextInitializer.init();
          TelegramBotsApi botsApi = new TelegramBotsApi();
  
          DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
  
          botOptions.setProxyHost(PROXY_HOST);
          botOptions.setProxyPort(PROXY_PORT);
          botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS4);
  
          try {
              botsApi.registerBot(new SharperBot(botOptions));
          } catch (TelegramApiRequestException e) {
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  <p>I'm getting this stack trace:</p>
  <pre><code>Jun 12, 2019 11:56:51 AM org.apache.http.impl.execchain.RetryExec execute
  INFO: Retrying request to {s}-&gt;https://api.telegram.org:443
  Jun 12, 2019 11:56:51 AM org.apache.http.impl.execchain.RetryExec execute
  INFO: I/O exception (java.net.SocketException) caught when processing request to {s}-&gt;https://api.telegram.org:443: Malformed reply from SOCKS server
  Jun 12, 2019 11:56:51 AM org.apache.http.impl.execchain.RetryExec execute
  INFO: Retrying request to {s}-&gt;https://api.telegram.org:443
  Jun 12, 2019 11:56:52 AM org.apache.http.impl.execchain.RetryExec execute
  INFO: I/O exception (java.net.SocketException) caught when processing request to {s}-&gt;https://api.telegram.org:443: Malformed reply from SOCKS server
  Jun 12, 2019 11:56:52 AM org.apache.http.impl.execchain.RetryExec execute
  INFO: Retrying request to {s}-&gt;https://api.telegram.org:443
  org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException: Error removing old webhook
      at org.telegram.telegrambots.util.WebhookUtils.clearWebhook(WebhookUtils.java:79)
      at org.telegram.telegrambots.bots.TelegramLongPollingBot.clearWebhook(TelegramLongPollingBot.java:25)
      at org.telegram.telegrambots.meta.TelegramBotsApi.registerBot(TelegramBotsApi.java:120)
      at bot.SharperBotApp.main(SharperBotApp.java:24)
  Caused by: org.telegram.telegrambots.meta.exceptions.TelegramApiException: Unable to execute deleteWebhook method
      at org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod(DefaultAbsSender.java:719)
      at org.telegram.telegrambots.meta.bots.AbsSender.execute(AbsSender.java:47)
      at org.telegram.telegrambots.util.WebhookUtils.clearWebhook(WebhookUtils.java:74)
      ... 3 more
  Caused by: java.net.SocketException: Malformed reply from SOCKS server
      at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:129)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:459)
      at java.net.Socket.connect(Socket.java:589)
      at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:339)
      at org.telegram.telegrambots.facilities.proxysocketfactorys.SocksSSLConnectionSocketFactory.connectSocket(SocksSSLConnectionSocketFactory.java:41)
      at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
      at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
      at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
      at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
      at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
      at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
      at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
      at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
      at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
      at org.telegram.telegrambots.bots.DefaultAbsSender.sendHttpPostRequest(DefaultAbsSender.java:765)
      at org.telegram.telegrambots.bots.DefaultAbsSender.sendMethodRequest(DefaultAbsSender.java:761)
      at org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod(DefaultAbsSender.java:716)
      ... 5 more
  
  Process finished with exit code 0
  
  </code></pre>
  <p>I googled it and found that people advise to use proxy... But I've already done it! So I decided to use VPN. I installed windscribe on my laptop but then also got this exception. What should I try to do?  Maybe, I'm doing something wrong? (There is Debian 9 installed on my laptop).</p>