从java代码调用Sling Servlet

时间:2013-04-04 12:14:30

标签: http url java-ee post sling

我试图通过我的java代码中的HTTP POST来调用servlet.Below是我的代码

private void sendRequest(String Url)
{
  //Url contains all the POST parameters

try {

        URL url = new URL(Url);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();           
        connection.setDoOutput(true); 
        connection.setInstanceFollowRedirects(false); 
        connection.setRequestMethod("GET"); 
        connection.setRequestProperty("Content-Type", "text/plain"); 
        connection.setRequestProperty("charset", "utf-8");
        connection.connect();
        connection.disconnect();

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

}

但请求不是去servlet。我试图通过浏览器访问URL并且它工作正常。我遗漏了一些东西或代码有任何问题。请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您要执行的操作是通过正在运行的吊索处理请求,则可能需要检查Sling Request Processor。您可以使用该服务处理对Sling引擎的请求。

另外,如果您使用的是CQ,则可以使用Request Response Factory创建传递给请求处理器的请求

答案 1 :(得分:0)

您实际上无法发送 HTTP请求。仅连接/断开连接是不够的。在URLConnection的情况下,只有当您的代码开始获取有关HTTP响应的信息时才会发送HTTP请求,例如响应状态,标题和/或正文。

替换那些不必要的connect()disconnect()行,例如

int responseStatusCode = connection.getResponseCode(); // 200 == OK.

InputStream responseBody = connection.getInputStream();
// Consume it.

另见: