问题描述
我有一个服务器和客户端程序,客户端向服务器发送一个 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 (将#修改为@)