# daten per post senden



## darkeye2 (14. Okt 2011)

Hallo, ich bin mir nicht ganz sicher, ob es direkt an meinen code liegt, oder an einem denkfehler.

Ich muss wiedermal per java ein formular auf einer webweite ausfüllen, normal hats immer geklappt, in dem fall aber nicht.

Das Formular sieht so aus:

```
<form action="/ajax.php" method="post">
						<center>
						   	<ul class="form">
							 <li class="validated" id="username_li">
								  <label for="r_username"><b><font size=2>Benutzername:</font></font></b></label>
								  <div id="username_img"></div>
								  <input class="validated" name="username" id="username" type="text" maxlength="20" value=""  />
								  <div id="username_msg"></div>
							  </li>
							  <li class="validated" id="password_li">
								  <label for="r_password"><b><font size=2>Passwort:</font></b></label>
								  <div id="password_img"></div>
								  <input class="validated" name="password" id="password" type="password" maxlength="20"  />
								  <div id="password_msg"></div>
							  </li>
							  <li id="confirmpass_li">
								  <label for="r_confirmpass"><b><font size=2>Best&auml;tigung:</font></b></label>
								  <div id="confirmpass_img"></div>
								  <input class="validated" name="r_confirmpass" id="confirmpass" type="password" maxlength="20" />
								  <div id="confirmpass_msg"></div>
							  </li>
							  <li class="validated" id="email_li">
								  <label for="email"><b><font size=2>E-Mail:</font></b></label>
								  <div id="email_img"></div>
								  <input class="validated" name="email" id="email" type="email" maxlength="50"  />
								  <div id="email_msg"></div>
							  </li>
							  <li class="validated" id="captcha_li">
								  <img class="imgc" id="cpic" src="captcha.php?id=5ab3b88cdca79b0f5ba1107dccca3caa" alt="Bild-Captcha" /><br /><br /><br /><br />
								  <label for="captcha"><b><font size=2>Captcha:</font></b></label>
								  <div id="captcha_img"></div>
								  <input class="validated" name="captcha" id="captcha" type="captcha" maxlength="6"  />
								  <input type="hidden" value="5ab3b88cdca79b0f5ba1107dccca3caa" name="sid" />
								  <div id="captcha_msg"></div>
							  </li>
							  <li class="validated" id="submit_li">
									<nobr>
									<a target="_blank" href="/info/agb">
										<label style="vertical-align: middle; font-size: 11px; font-weight: bold; color: rgb(0, 80, 130);">Regeln gelesen?</label>
									</a>
									<input type="checkbox" style="vertical-align: middle; margin: 14px 0pt 14px 10px;width:40px;" id="agb_check" name="agb_check">	
									</nobr>								
								  <div id="regeln_msg"></div>
							  </li>							  
							  <li class="validated" id="submit_li">
								  <div id="submit_img"></div>
								  <button class="validated" name="submit" value="1" class="validated">ENTER</button>
								  <div id="button_msg"></div>
							  </li>
							  
						    </ul>
					    </center>
					</form>
```

Und hier mein code zum senden der post daten (den code hab ich vor langer zeit mal irgendwo rausgenommen, im laufe der zeit hab ich zwar immer wieder mal hier und da kleinigkeiten geändert gehabt, aber eigentlich nix wesentliches, und ich denke eigentlich auch nicht, das es am code liegt, dass das ganze nicht klappt.


```
public void sendPost(String capCode){
		try {
		    String data = URLEncoder.encode(nameF, "UTF-8") + "=" + URLEncoder.encode(user, "UTF-8");
		    data += "&" + URLEncoder.encode(pwF, "UTF-8") + "=" + URLEncoder.encode(pw, "UTF-8");
		    data += "&" + URLEncoder.encode(rpwF, "UTF-8") + "=" + URLEncoder.encode(pw, "UTF-8");
		    data += "&" + URLEncoder.encode(mailF, "UTF-8") + "=" + URLEncoder.encode(mail, "UTF-8");
		    data += "&" + URLEncoder.encode("sid", "UTF-8") + "=" + URLEncoder.encode(sid, "UTF-8");
		    data += "&" + URLEncoder.encode(cF, "UTF-8") + "=" + URLEncoder.encode(capCode, "UTF-8");
		    data += "&" + URLEncoder.encode(checkF, "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8");

		    URL url = postLink;
		    URLConnection conn = url.openConnection();
		    conn.setDoOutput(true);
		    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
		    wr.write(data);
		    wr.flush();

		    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		    String line;
		    while ((line = rd.readLine()) != null) {
		        System.out.println(line);
		    }
		    wr.close();
		    rd.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
```

was ich da zurückkriege sieht so aus:

```
{"username":"meinUsername","password":"meinPW","confirmpass":"meinPW","email":"myEmail@ymail.com","sid":"2930105906831dc7c7cee30ab3ed538a","captcha":"A92GH","agb_check":"1","success":0,"msg":"Es wurden keine Daten eingegeben"}
```

Sieht jemand einen fehler, ich vermutte, es ist eher ein denkfehler oder ich hab einfach irgendwas übersehen.


[EDIT]: hab jetzt einen fehler schon mal gefunden, hab vergessen als parameter submit=1 mitzugeben, allerdings sagt er immer noch, dass ich nicht alle fälder ausgefüllt habe ...

Danke für eure Hilfe


----------



## nillehammer (14. Okt 2011)

Die URL, die Du zusammenbaust ist eine GET-URL und so für HTTP-Posts unbrauchbar. So wie Du die Daten in den Outputstream schreibst, ist es nicht mal ein GET-Request. Nutze ein HTTP-Client Framework und bastele dort einen ordentlichen Post-Request zusammen.


----------



## HoaX (17. Okt 2011)

nillehammer hat gesagt.:


> Die URL, die Du zusammenbaust ist eine GET-URL und so für HTTP-Posts unbrauchbar. So wie Du die Daten in den Outputstream schreibst, ist es nicht mal ein GET-Request. Nutze ein HTTP-Client Framework und bastele dort einen ordentlichen Post-Request zusammen.



Nö das passt. Schau doch mal ins RFC?! Aber ich würde z.B. noch den ContentType und ContentLength setzten.


----------



## darkeye2 (17. Okt 2011)

also hab jetzt auch noch content-typ und length gesetzt, hat sich nix geändert, will irgendwie nicht funktionieren, weiß jemand zufällig noch was, was man machen könnte (außer eine fertige bibliothek zu nutzen)


----------

