- - PR -
HttpClientでリダイレクトしたいです
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-20 16:42
お世話になります。
HttpClientを使って、WebサイトにユーザーIDとパスワードをPOSTして そのレスポンスをクライアントに返却したいのですが Webサイトからコンテンツが返却される場合(200 OK)はうまく動くのですが Locationヘッダーで別のコンテンツにリダイレクトする場合(302)はうまく動きません。 ※クライアントに真っ白の画面が表示されてしまいます。 認証後のCookie等はクライアントに返却されていますので 後はLocationヘッダーで指定されたURLへ飛ばせばやりたい事は完了します。 試行錯誤して汚いソースで申しわけないのですが アドバイス等をいただければ助かります。よろしくお願いします。 ----------------- String spline; client = new HttpClient(); PostMethod loginpostmethod = new PostMethod(loginurl); loginpostmethod.addParameter(usernameparameter, username); loginpostmethod.addParameter(passwordparameter, password); if (parameter2 != null) { for (int o = 0; o <= parameter2.length; o += 2) if (parameter2[o] != null) { if (parameter2[o + 1].equals("\"\"")) { loginpostmethod.setParameter(parameter2[o], ""); } else { loginpostmethod.setParameter(parameter2[o], parameter2[o + 1]); } } else { break; } } loginpostmethod.setDoAuthentication(true); client.executeMethod(loginpostmethod); BufferedReader loginreader = new BufferedReader( new InputStreamReader(loginpostmethod.getResponseBodyAsStream(), "euc-jp")); Header[] localheader = loginpostmethod.getResponseHeaders(); System.out.println("/--------ボディ戻り--------/\n"); while ((spline = loginreader.readLine()) != null) { list.add(spline); System.out.println(spline); } System.out.println("\n/--------ヘッター戻り--------/\n"); for (int j = 0; j < localheader.length; j++) { if(localheader[j].getName().equals("Location")){ localheader[j].setValue(localheader[j].getValue().replace("://","%3A%2F%2")); } response.addHeader(localheader[j].getName(), localheader[j].getValue()); System.out.println(localheader[j]); } request.getSession().setAttribute( ActionConstants.PAR_PAGEROWS, list); loginreader.close(); stream.close(); isr.close(); br.close(); | ||||
|
投稿日時: 2007-12-21 00:40
公式なソースは見つかりませんでしたが、
[httpclient post redirect]でググったら、 http://www.google.co.jp/search?hl=ja&safe=off&rls=GGLJ%2CGGLJ%3A2006-40%2CGGLJ%3Aja&q=httpclient+post+redirect&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja の一番目に、 http://slashdot.jp/~shimashima/journal/381083 がありまして、
と、試した結果が書かれていました。ApacheのHttpClientですよね? | ||||
|
投稿日時: 2007-12-21 13:23
ドキュメント読もう。
http://hc.apache.org/httpclient-3.x/redirects.html |
1