34

リクエストをサーブレットに送信し、レスポンスからヘッダーを読み取りたい。だから私はこれを使って試します:

  URL url = new URL(contextPath + "file_operations");
    HttpURLConnection conn = null;
    try {
        conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("charset", "utf-8");
        conn.setUseCaches(false);
        conn.setConnectTimeout(1000 * 5);
        conn.connect();

        conn.getHeaderField("MyHeader")
        .....

しかし、受信したヘッダーは常にnull. サーブレットは正常に動作します (スタンドアロンの HTTP クライアントを使用してサーブレットを操作してみました)

4

2 に答える 2

38

ヘッダーをフェッチする前に、成功した応答が得られていることを確認してください。これは、応答を確認する方法です。

int status = conn.getResponseCode();

if (status == HttpURLConnection.HTTP_OK) {
    String header = conn.getHeaderField("MyHeader");
}

また、サーブレット応答がリダイレクト応答でないことを確認してください。リダイレクトすると、ヘッダーを含むすべてのセッション情報が失われます。

于 2013-08-13T06:31:38.127 に答える