2013-11-28 189 views
0

我正在嘗試與https站點連接,但是當我發送我的請求時,我得到的響應代碼= 500 XML不爲什麼當我嘗試從Web服務獲取響應時出現此錯誤。下面是我的示例代碼。請幫我解決這個問題。https服務的https連接

public static HttpsURLConnection gethttpsConnection(String wsdl, 
      String soapAction, StringBuffer buf) { 
     try { 
      URL url = new URL(wsdl); 
      HttpsURLConnection connjava = (HttpsURLConnection) url 
        .openConnection(); 
      connjava.setRequestMethod("GET"); 
      connjava.setRequestProperty("Content-length", 
        "" + Integer.toString(buf.toString().getBytes().length)); 
      connjava.setRequestProperty("Content-Type", 
        "text/xml; charset=utf-8"); 
      connjava.setRequestProperty("User-Agent", "text/xml; charset=utf-8"); 
      connjava.addRequestProperty("SOAPAction", soapAction); 
      connjava.setDoOutput(true); 
      connjava.setDoInput(true); 
      connjava.setAllowUserInteraction(true); 
      java.io.DataOutputStream printout = new java.io.DataOutputStream(
        connjava.getOutputStream()); 
      printout.writeBytes(buf.toString()); 

      if (connjava != null) { 

       Logs.logger.info("Response Code : " 
         + connjava.getResponseCode()); 
       X509Certificate[] certs = (X509Certificate[]) connjava 
         .getServerCertificates(); 
       for (X509Certificate cert : certs) { 

        Logs.logger.info("Cert Hash Code : " + cert.hashCode()); 
        Logs.logger.info("Cert Public Key Algorithm : " 
          + cert.getPublicKey().getAlgorithm()); 
        Logs.logger.info("Cert Public Key Format : " 
          + cert.getPublicKey().getFormat()); 
       } 



       printout.flush(); 
       printout.close(); 
return connjava; 
      } 
+2

請從服務器日誌中包含堆棧跟蹤。 – 2013-11-28 07:38:55

+0

服務器錯誤500是內部服務器錯誤。閱讀我的答案,它可能會幫助你。 –

+0

還有一個建議,這個錯誤不是因爲你的代碼。 (我是這麼認爲的)。如果你想使用SSL保護連接,那麼包含SSL文件。無需編寫此代碼,您可以實施SSL並免費使用此代碼。 500錯誤與您的代碼無關。但最後,我不確定。請檢查其他答案。 –

回答

0

我沒有網絡發展的許多經驗與Java,但沒錯,我已經過Php工作,還有我的server Error - 500同樣的問題。這是因爲會話價值不匹配。我有兩個網站共享相同的session變量名稱。這導致在活動sessions不匹配,並且我得到了這個錯誤。檢查一下,我想你可能會犯同樣的錯誤。