HTTP/1.0 403禁止的java ssl套接字

HTTP/1.0 403禁止的java ssl套接字,java,sockets,ssl,tls1.2,Java,Sockets,Ssl,Tls1.2,我是java新手,需要打开TLS连接并发送数据,但我收到403禁止错误,代码中是否缺少某些内容 javax.net.SocketFactory basicSocketFactory=javax.net.SocketFactory.getDefault(); java.net.Socket s=basicSocketFactory.createSocket(主机、端口) javax.net.ssl.SSLSocketFactory tlsSocketFactory=(SSLSocketFactor

我是java新手,需要打开TLS连接并发送数据,但我收到403禁止错误,代码中是否缺少某些内容

javax.net.SocketFactory basicSocketFactory=javax.net.SocketFactory.getDefault(); java.net.Socket s=basicSocketFactory.createSocket(主机、端口)

javax.net.ssl.SSLSocketFactory tlsSocketFactory=(SSLSocketFactory)javax.net.ssl.SSLSocketFactory.getDefault();
s=tlsSocketFactory.createSocket(s,主机,端口,true);
如果(s.断开连接()){

System.out.println(“已连接”);您在哪里看到这样的HTTP请求?行尾应该是
\r\n
,而不是
\n\r\n
,并且应该有另一个
\r\n
(空行)在标题的末尾,将标题与正文分开。并且在您的帖子请求中没有
内容长度
标题。请不要猜测HTTP是如何工作的,而是阅读或使用一个正确的库。我真的希望有一个“懒得阅读标准”的确切原因,并将其应用于OP尝试(糟糕)的所有帖子重新实现HTTP而不是使用库。您在哪里看到这样的HTTP请求?行尾应该是
\r\n
,而不是
\n\r\n
,并且应该有另一个
\r\n
(空行)在标题的末尾,将标题与正文分开。并且在您的帖子请求中没有
内容长度
标题。请不要猜测HTTP是如何工作的,而是阅读或使用一个正确的库。我真的希望有一个“懒得阅读标准”的确切原因,并将其应用于OP尝试(糟糕)的所有帖子重新实现HTTP而不是使用库。
        javax.net.ssl.SSLSocketFactory tlsSocketFactory = (SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault();
        s = tlsSocketFactory.createSocket(s, host, port, true);

         if (s.isConnected()){
             System.out.println("connected"); <-passes here
         }

         java.io.PrintWriter pw = new java.io.PrintWriter(s.getOutputStream());


         pw.println("POST /direct.aspx HTTP/1.1\n\r\n");
         pw.println("Host: "some host-sorry can't reveal"\n\r\n");
         pw.println("Connection: Close\n\r\n");
         pw.println("Content-type: application/x-www-form-urlencoded\n\r\n");
         pw.println("Content-Length: " + Integer.toString(input.length())+"\n\r\n");
         pw.println("Charset: UTF-8\n\r\n");
         pw.println(input);
         pw.flush();
         java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(s.getInputStream()));
         String t;
         while((t = br.readLine()) != null) System.out.println(t);
         br.close();