localhost에서 서버로 요청을 보내려고하지만 다음 오류를 반환합니다.ssl을 통해 요청을 보내는 방법은 무엇입니까?
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
당신은 HttpsURLConnection
을 사용해야 할 때 SSL에 대한 HttpURLConnection
를 사용하려고
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();
}
}
HttpURLConnection 대신 HttpsURLConnection을 시도하십시오 – smeaggie
@smeaggie https로 변경했지만 여전히 동일한 오류로 실행됩니다. –
저는 Jim과 함께합니다. 서버가 HTTPS를 보내지 않습니다. – smeaggie