服务器没有收到客户端的输入

问题描述

我有一个服务器和客户端程序,客户端向服务器发送一个 POST 请求和一个字符串。 POST 请求成功,我在客户端收到响应、状态代码等。

但是客户端发送给服务器的消息没有收到,Input流只有
PUT/HTTP/1.1

我对网络中的套接字和输入/输出流非常陌生。我已经附加了服务器和客户端无法正常工作的代码片段。

服务器端

if(method=="POST")
            {
                String line="";
                BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream()));
                //while we still have something to read from the buffer
                while((line=reader.readLine())!=null)
                {
                    System.out.println(line);
                }
                reader.close();                     
            
    out.println("HTTP/1.1 200 OK");
                out.println(); // blank line between headers and content,very important !
                out.flush(); // flush character output stream buffer
                dataOut.write(putData,putData.length);
                dataOut.flush();
                out.close();
                dataOut.close();
            }

客户端

URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();

            con.setRequestMethod("POST");
            con.setRequestProperty("Accept-Language","en-US,en;q=0.5");

            con.setDoOutput(true);
            con.setDoInput(true);
            String jsonInputString = "{\"name\": \"Upendra\"}";
            PrintWriter os = new PrintWriter(con.getoutputStream());
                //byte[] input = jsonInputString.getBytes("utf-8");
                os.write(jsonInputString);
                os.flush();
        
            System.out.println("\n\nURL : " + url);
            System.out.println("Request Method: " + con.getRequestMethod());
            System.out.println("Response Code: " + con.getResponseCode());
            System.out.println("Response Message: " + con.getResponseMessage());
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            
            in.close();

            System.out.println("Response Length: " + response.toString().length());
            File file = new File ("output.txt");
            PrintWriter out = new PrintWriter("output.txt");
            System.out.println(response.toString());
            out.println(response.toString());
            System.out.println("Response copied to output.txt.");
            out.close();
            
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)