2013-11-23 9 views
5

मैं स्थानीयहोस्ट से सर्वर पर एक अनुरोध भेजने की कोशिश कर रहा हूं लेकिन यह त्रुटि के बाद आता है।एसएसएल पर अनुरोध कैसे भेजें?

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 

कोड

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.net.URL; 
import javax.net.ssl.HttpsURLConnection; 
import javax.xml.bind.JAXBContext; 
import javax.xml.bind.JAXBException; 
import javax.xml.bind.Marshaller; 


public class Test { 

public void connectMyServer(){ 

     Login auth = new Login("username", "password"); 

     JAXBContext cntx = JAXBContext.newInstance(Login.class); 
     Marshaller m = cntx.createMarshaller(); 
     m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); 

     try { 
      URL url = new URL("https://www.server.com/requests"); 
      HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); 

      con.setRequestMethod("POST"); 
      con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
      con.setDoOutput(true); 
      con.setDoInput(true); 

      OutputStream os = con.getOutputStream(); 
      m.marshal(auth, os); 
      m.marshal(auth, System.out); 

      os.flush(); 
      con.getResponseCode(); 

      BufferedReader in = new BufferedReader(new InputStreamReader(
        con.getInputStream())); 

      String inputLine; 
      while ((inputLine = in.readLine()) != null) { 
       System.out.println(inputLine); 
      } 
      in.close(); 
      con.disconnect(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
+0

HttpURLConnection – smeaggie

+0

@smeaggie के बजाय HttpsURLConnection आज़माएं मैंने इसे https में बदल दिया है, लेकिन फिर भी उसी त्रुटि में चला जाता है –

+0

मैं इस पर जिम के साथ हूं; सर्वर तब HTTPS नहीं भेज रहा है। – smeaggie

उत्तर

1

जब आप HttpsURLConnection का उपयोग करना चाहिए एसएसएल के लिए HttpURLConnection उपयोग करने के लिए कोशिश कर रहे हैं।

संपादित करें:

मैं इस कोशिश की:

import java.net.URL; 
import java.util.List; 
import java.util.Map; 

import javax.net.ssl.HttpsURLConnection; 

public class Test 
{ 

    public static void main(String[] args) throws Exception 
    { 
     URL url = new URL("https://www.google.com"); 
     HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); 
     Map<String,List<String>> fields = con.getHeaderFields(); 
     con.disconnect(); 
    } 
} 

यह कोई समस्या नहीं के साथ चलाता है।

आपका त्रुटि संदेश इंगित करता है कि दूरस्थ सर्वर प्रतिक्रिया दे रहा है जैसे यह HTTP बोलता है, न कि HTTPS, चाहे आपकी तकनीकी टीम क्या कहती है।

+0

मैंने इसे https में बदल दिया है लेकिन फिर भी एक ही त्रुटि में चला जाता है –

+0

क्या रिमोट सर्वर HTTP पर रीडायरेक्ट कर रहा है? क्या आपने वॉयर्सहार्क के साथ यातायात को देखा है कि क्या भेजा जा रहा है और प्राप्त किया गया है? –

+0

सर्वर तकनीक टीम ने मुझे https से सभी कनेक्शन भेजने की सलाह दी, इसलिए मुझे लगता है कि वे इसे http –

संबंधित मुद्दे