こんにちは、HttpClient を使用して Http Request を送信しています。サーブレットを呼び出すことはできますが、戻り405 status code.doPost method not allowed
ます。同じステータスコードも取得しようとしました。
また、応答でヘッダーを取得できません。リクエストをリクエストに転送または含める必要がありますか。
//HTTP リクエストを送信するコード
public void perform(Date now, long remainingRepetitions)
{
log.info("Starting the Job " + now);
System.out.println("Before try 2");
try {
HttpResponse response;
while(true){
HttpClient client = new DefaultHttpClient();
System.out.println("Http Client instantiated");
HttpPost request = new HttpPost("http://localhost:8080/Servlet");
System.out.println("Post Request created");
response = client.execute(request);
System.out.println("Http Status Code = " + response.getStatusLine().getStatusCode() );
Header headers[] = response.getAllHeaders();
for(Header h:headers){
System.out.println("New" +h.getName() + ": " + h.getValue());
}
if(response.getStatusLine().getStatusCode()==200 || response.getStatusLine().getStatusCode()== 405){
if(response.getLastHeader("JobStatus").equals("Success"))
{
break;
}
}
client.getConnectionManager().shutdown();
Thread.sleep(10000);
}
} catch (ClientProtocolException e) {
log.info(e);
} catch (IOException e) {
log.info(e);
} catch (Exception e) {
// TODO Auto-generated catch block
log.info("Exception Occured");
e.printStackTrace();
}finally{
System.out.println("finally");
}
// サーブレット
private void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
System.out.println("Inside ProcessReqest");
try{
//some method call
resp.addHeader("JobStatus", "Success");
}catch(Exception e){
resp.addHeader("JobStatus", "Failure");
}
}