2015-08-13 4 views
0

У меня есть следующий код, который я использовал с Docusign Rest API walk through. Поскольку я за прокси-сервером, я добавил информацию прокси.DocuSign REST API через прокси-сервер

public HttpURLConnection initializeRequest(String url, String method, 
    String body, String httpAuthHeader) { 
     try { 

      Proxy proxy = new Proxy(Proxy.Type.HTTP, 
       new InetSocketAddress("proxyServer address", proxyPort)); 

      conn = (HttpURLConnection) new URL(url).openConnection(proxy); 
      conn.setRequestMethod(method); 
      conn.setRequestProperty("X-DocuSign-Authentication", 
       httpAuthHeader); 
      conn.setRequestProperty("Accept", "application/json"); 
      if (method.equalsIgnoreCase("POST")) { 
       conn.setRequestProperty("Content-Type", 
        "multipart/form-data; boundary=BOUNDARY"); 
       conn.setDoOutput(true); 
      } else { 
       conn.setRequestProperty("Content-Type", "application/json"); 
      } 
      return conn; 
     } catch (Exception e) { 
      throw new RuntimeException(e); // simple exception handling 
              // please review it 
     } 
    } 

Это отлично работает, но в последнее время прокси-сервер требует аутентификации и я получаю сообщение об ошибке 401 несанкционированной на моих остальных вызовах.

Я действительно изменил код, чтобы иметь в нем аутентификатор, но у меня все еще такая же проблема, любые предложения, что я могу попробовать, кроме этого?

public HttpURLConnection initializeRequest(String url, String method, String body, String httpAuthHeader) { 
     try { 

      Proxy proxy = new Proxy(Proxy.Type.HTTP, 
       new InetSocketAddress("proxyServerAdress", intPort)); 

      Authenticator authenticator = new Authenticator() { 

       public PasswordAuthentication getPasswordAuthentication() { 
        return (new PasswordAuthentication("username", 
         "password".toCharArray())); 
       } 
      }; 
      Authenticator.setDefault(authenticator); 


      conn = (HttpURLConnection) new URL(url).openConnection(proxy); 

      conn.setRequestMethod(method); 
      conn.setRequestProperty("X-DocuSign-Authentication", 
       httpAuthHeader); 
      conn.setRequestProperty("Accept", "application/json"); 
      if (method.equalsIgnoreCase("POST")) { 
       conn.setRequestProperty("Content-Type", 
        "multipart/form-data; boundary=BOUNDARY"); 
       conn.setDoOutput(true); 
      } else { 
       conn.setRequestProperty("Content-Type", "application/json"); 
      } 
      return conn; 
     } catch (Exception e) { 
      throw new RuntimeException(e); // simple exception handling 
              // please review it 
     } 
    } 
+1

Используйте [requestb.in] (http://requestb.in/), чтобы узнать, что вы отправляете на DocuSign. Ваша базовая аутентификация с прокси-сервером, вероятно, отправляется в DocuSign, чего не ожидается. Жалуйтесь на своих прокси-пользователей. Тот факт, что они нарушили ваше рабочее приложение, должно быть их проблемой для исправления. –

ответ

0

Используйте requestb.in, чтобы увидеть, что вы отправки DocuSign через прокси-сервер.

Ваша основная аутентификация с прокси-сервером, вероятно, отправляется на DocuSign, чего не ожидается на платформе.

Пожаловаться на ваш прокси-сервер. Тот факт, что они нарушили ваше рабочее приложение, должно быть их проблемой, чтобы исправить ...

Смежные вопросы