0
votes

I am trying to send an HTTP POST Request to a remote server using an instance of the HttpURLConnection class. Although, I am able to get a response code and a response message, when I try to write the input stream into a StringBuffer, I am not able to actually read any lines.

When I analyzed the packets sent from WireShark, I noticed that a full response was being sent from the remote server. My only guess as to why I am not able to see it in the Java program is because the time in which I try to read from the InputStream is too late.

So, how do I read the immediate, full response from the remote server using my HttpURLConnection object? Below is the code that I am using:

HttpURLConnection conn = null;
String urlStr = "...";
URL url = null;
try
{
    url = new URL(urlStr); 
    conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setDoInput(true);
    conn.setDoOutput(true);
...
    BufferedReader rd = new BufferedReader(
                new InputStreamReader(conn.getInputStream()));
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = rd.readLine()) != null)
    {
         sb.append(line);
    }
    rd.close();
...
}...
1

1 Answers

0
votes

Okay, never mind. It turns out that what I was looking for was in the HTTP Respone's header. So, I got what I needed by looking through its headers. ::Face Palm::