1

単純な Java サーバーを XmlHttpRequest に応答させようとしていますが、その方法がわかりません。現在、サーバー上のソケットはブラウザのリクエストを取得しています。ソケット出力ストリームを取得した後、サーバーはそれに書き込み、すべての接続を閉じます。これ以上何かありますか?リクエストに正しく応答するにはヘッダーが必要だと思いますが、そうであれば、そのヘッダーは何でしょうか。ありがとう!

これが私が今していることです。ただし、ブラウザにメッセージを受け入れさせることができないようです。

編集:Javaサーバーコード:

private String HEADER = "HTTP/1.1 200 OK\n" +
"Cache-Control: private\n" +
"Content-Type: text/html; charset=utf-8\n" +
"Expires: Sun, 21 Feb 2100 20:39:08 GMT\n" +
"Server: Microsoft-IIS/7.5\n" +
"Date: Sun, 21 Apr 2012 20:39:07 GMT\n" +
"Connection: close\n" +
"Content-Length: 10\n";

         browserWriter =
                new PrintWriter(
                        browser.getOutputStream(),true);

            while((data = browserReader.readLine()) != null) {
                if (data.indexOf("POST") != -1) {

                    /* TODO TEST - TAKE OUT */
                    browserWriter.println(HEADER + "APPLESAUSE");
                    browserWriter.close();
                    browserReader.close();
                    browser.close();
                    return;

Javascript:

  xmlhttp.open("POST","http://10.0.2.15:1024/password?url=" + site, false);
  xmlhttp.send(null);
4

2 に答える 2

2

すべての XmlHTTPRequest は HTTP 応答を必要とするため、HTTP ヘッダーが必要です。応答が返されたら、接続を閉じても問題ありません。これは基本的に、Web サーバーとして機能するだけです。

一部の HTTP ヘッダー フィールド: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

公式仕様については、こちらを参照してください: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

ここのまともなチュートリアル: http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/

于 2012-04-11T19:53:40.327 に答える
1

ブラウザーがサーバーの応答を理解するには、 HTTP プロトコルResponseで指定された形式に従って有効である必要があります。実際の応答本文に加えて必要なのは、通常、要求が成功した場合のステータス ラインだけです。HTTP/1.1 200 OK

またはなどの追加のHTTP ヘッダーは、ブラウザーが応答をより効率的に処理するのに役立ちますが、これらの多くを設定し始めると、基本的に独自の HTTP サーバーを実装することになります。ルート。Content-LengthContent-Type

于 2012-04-11T20:06:53.207 に答える