我一直在嘗試使用套接字與tomcat進行通信。我正在形成HTTP消息並將其寫入outputStream。連接成功建立,但我沒有收到任何迴應。當我試圖通過telnet連接的同一條消息能夠得到響應。請找到下面的代碼片段,指出我缺少的東西。通過套接字連接tomcat
String text1 = text.getText();
String text2 = text_1.getText();
String address = combo.getText();
System.out.println("Text1 =" + text1 + " Text2 = " + text2 + " Address = "+address);
try{
StringBuilder builder = new StringBuilder();
Socket socket = new Socket("localhost", 8082);
DataOutputStream outToServer = new DataOutputStream(socket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//U need to post actual HTTP MESSAGE HERE
StringBuilder requestBuilder = new StringBuilder();
requestBuilder.append("GET").append(SPACE).append(FORWARD_SLASH).append("SayHello").append(FORWARD_SLASH).append("SayHello").append("?")
.append("text1=").append(text1).append("&text2=").append(text2).append(NEWLINE)/*.append(SPACE).append("HTTP/1.1").append(NEWLINE)
.append("accept").append(COLON).append(SPACE).append("text/plain;").append(SPACE).append("text/html").append(NEWLINE)
.append("accept-language").append(COLON).append("en-US").append(NEWLINE)
.append("connection").append(COLON).append("keep-alive").append(NEWLINE)
.append("host").append(COLON).append("localhost").append(NEWLINE)
.append("user-agent").append(COLON).append("MyUCBrowser").append(NEWLINE)
.append("content-length").append(COLON).append("0").append(NEWLINE)
.append("connection-type").append(COLON).append("text/plain").append(NEWLINE)*/;
/*box.setMessage(requestBuilder.toString());
box.open();*/
System.out.println(requestBuilder.toString());
outToServer.writeUTF(requestBuilder.toString());
String tempResp;
while ((tempResp = inFromServer.readLine()) != null) {
builder.append(tempResp);
}
System.out.println(builder.toString().length() > 0 ? builder.toString() : "Anup Kalane!!!");
text_2.setText(builder.toString());
socket.close();
display.dispose();
}
catch (UnknownHostException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
爲了方便起見,還附加了servlet ......這是非常基本的一個。我只是爲了測試目的而創建它。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String text1 = request.getParameter("text1") != null ? request.getParameter("text1") : "NULL";
String text2 = request.getParameter("text2") != null ? request.getParameter("text2") : "NULL";
System.out.println("Hello");
PrintWriter writer = response.getWriter();
writer.write("<HTML><BODY><H1>HELLO\nText1 = "+text1+"\nText2 = "+text2+"</H1></BODY></HTML>");
writer.close();
}
在你的代碼中程序停止,或者它以某種方式完成它?另外,如果你刪除所有附加內容併發送一些新行,會發生什麼情況。你會得到一個錯誤迴應?如果沒有,那麼你有更多的根本問題。如果是這樣,慢慢開始添加你的追加,直到它停止工作,並找出爲什麼它打破它。 – xaxxon
先生,我的程序我的目的不重要,我發佈的代碼片段是一個巨大的SWT應用程序的一部分,它實際上正常啓動和停止。不,我根本沒有收到ne錯誤迴應。順便說一句,謝謝你的不錯的幫助。 – Anup