Witam.
Z poziomu applet-u, usiłuję wysłać i obsłużyć jednocześnie dane przesłane metodami GET oraz POST.
Kod applet-u odpowiedzialny za wysyłanie danych:
StringBuilder sb= new StringBuilder();
sb.append("Some text ...........");
URL url = new URL("http://localhost:8084/NazwaServletu/NazwaServletu?hashType=MD5");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
// connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Length", "" + sb.length());
OutputStreamWriter outputWriter = new OutputStreamWriter(connection.getOutputStream());
outputWriter.write(sb.toString());
outputWriter.flush();
outputWriter.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
System.out.println(in.readLine());
Metody doPost oraz doGet z servlet-u:
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/plain; charset=ISO-8859-2");
PrintWriter out = resp.getWriter();
if(req.getParameter("hashType").equals("MD5"))
{
BufferedReader reader = req.getReader();
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
while (line != null) {
sb.append(line + "\n");
line = reader.readLine();
}
reader.close();
String data = sb.toString();
data = data.toUpperCase();
out.println(data);
}
}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
Problem w tym, że po wykonaniu metody:
if(req.getParameter("hashType").equals("MD5"))
, ciało bloku if ( odczyt tekstu przesłanego metodą POST ), nie przesyła do appletu danych.
Jeżeli pozbędę się pobrania wartości parametru przesłanego metodą GET wszystko działa w porządku.
To co chciałbym uzyskać, to wykonanie odpowiednich działań na danych przesłanych metodą POST w zależności od podanego parametru GET.
Będę wdzięczny za wszelkie uwagi.
Pozdrawiam