Celem kodu jest wstawienie parametrów do formularza, a następnie przesłanie formularza, który z kolei wprowadza dane do bazy danych MySQL. Problem polega na tym, że metoda nie publikuje danych. Nie jestem pewien, co robię źle, patrzyłem na tak wiele pytań dotyczących tego, ale nic nie działa.Nie można wysłać formularza pocztowego w Javie
Oto formularz.
<form action="http://localhost/Documents/dataadded.php" method="post">
<b>Add a New Data</b>
<p>Email Address:
<input type="text" name="email_address" size="30" value="" />
</p>
<p>Email Pass:
<input type="text" name="email_pass" size="30" value="" />
</p>
<p>
<input type="submit" name="submit" value="Send" />
</p>
</form>
Oto kod Java.
public static void main(String[] args) {
String key1 = "email_address";
String key2 = "email_pass";
String key3 = "submit";
String param1 = "[email protected]";
String param2 = "password123";
String param3 = "Send";
try {
URL website = new URL("http://localhost/Documents/added.php");
Map<String,String> arguments = new LinkedHashMap<>();
arguments.put(key1, param1);
arguments.put(key2, param2);
arguments.put(key3, param3);
StringJoiner sj = new StringJoiner("&");
for(Map.Entry<String,String> entry : arguments.entrySet())
sj.add(URLEncoder.encode(entry.getKey(), "UTF-8") + "="
+ URLEncoder.encode(entry.getValue(), "UTF-8"));
byte[] out = sj.toString().getBytes(StandardCharsets.UTF_8);
int length = out.length;
HttpURLConnection connection = (HttpURLConnection) website.openConnection();
connection.setRequestMethod("POST");
connection.setFixedLengthStreamingMode(length);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
connection.setDoOutput(true);
connection.getOutputStream().write(out);
System.out.println(sj.toString());
InputStream response = connection.getInputStream();
@SuppressWarnings("resource")
Scanner scan = new Scanner(response);
String responsebody = scan.useDelimiter("\\A").next();
System.out.println(responsebody);
} catch (IOException e) {
e.printStackTrace();
}
}
Jeśli ktoś może rzucić trochę światła na to, co jest nie tak z kodem, będzie to bardzo cenne.
W jaki sposób zaangażowany jest PHP? –
Po przesłaniu formularza dane są przekazywane do http: //localhost/Documents/dataadded.php, który ma kod PHP, który obsługuje dane i dodaje je do bazy danych. –
@ C.Trant Ale czy jest to rzeczywiście związane z twoim pytaniem? Sposób obsługi danych wydaje się nieistotny, problemem jest przekazywanie danych. – GrumpyCrouton