newbie Server question

Hi,

This post might not belong in this forum, but I posted it because responses in this forum are very quick. :frowning:
I am so desperate and I need to fix it ASAP.

Thanks in advance :slight_smile:

I am currently writing a server which will respond to three methods GET, HEAD, POST methods.
what I am trying to do is to read all the request headers generated from a httpClient request
(i,e. POST /HTTP1.0, Content-length:111, Host: localhost:4444, and so on)
and put all of them together into a string named as request and then pass the request string to another method to process the request.

My problem is stated below.
when I print out request is always null…


	is = incoming.getInputStream();
			os = incoming.getOutputStream();
			in = new Scanner(is);
			out = new DataOutputStream(os);


			String request = "";
			while (in.hasNextLine()){
			String input = in.nextLine();
			request = request + input;
			}
			System.out.println(request);

The following is my full code…

 import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class HttpServer {
	static int PORT = 4444;

	@SuppressWarnings("resource")
	public static void main(String[] args) {
		try {
			ServerSocket s = new ServerSocket(PORT);
			System.out.println("Server is running!!");
			System.out.println(InetAddress.getLocalHost());
			while (true) {
				Socket incoming = s.accept();
				System.out
						.println(incoming.getRemoteSocketAddress().toString());
				Threads t = new Threads(incoming);
				t.start();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

class Threads extends Thread {
	private Socket incoming;
	private InputStream is = null;
	private OutputStream os = null;
	private Scanner in = null;
	private DataOutputStream out = null;

	public Threads(Socket i) {
		incoming = i;
	}

	public void run() {
		try {
			is = incoming.getInputStream();
			os = incoming.getOutputStream();
			in = new Scanner(is);
			out = new DataOutputStream(os);


			String request = "";
			while (in.hasNextLine()){
			String input = in.nextLine();
			request = request + input;
			}
			System.out.println(request);

	
			byte[] requestB = request.getBytes();

			RequestHandler rh = new RequestHandler();
			out.write(rh.processRequest(requestB)) ;

			is.close();
			os.close();
			in.close();
			out.close();

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

SOLVED IT :slight_smile:

Next time put your code in pastebin. :smiley: