1

我正在尝试通过我的 java 代码中的 HTTP POST 调用 servlet。下面是我的代码

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,它工作正常。是我遗漏了什么还是代码有任何问题。请帮忙。

4

2 回答 2

1

如果您尝试做的是通过正在运行的 sling 处理请求,您可能需要检查Sling Request Processor 。您可以使用该服务处理对 Sling 引擎的请求。

另外,如果您使用 CQ,您可以使用请求响应工厂来创建您传递给请求处理器的请求

于 2013-04-22T14:35:11.463 回答
0

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

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

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

或者

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

也可以看看:

于 2013-04-04T13:53:29.027 回答