我试图通过我的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并且它工作正常。我遗漏了一些东西或代码有任何问题。请帮忙。
答案 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.