HTTP Request

Hallo liebe WWW-Community,

ich habe da mal eine Frage… ich würde gerne an eine HTML-Seite
("http://www.kat-datenbank.de/katdb/wsade-kat/") eine Anfrage zusenden… ich müsste 3 Parameter übergeben, Haltungsform, Legebetriebsnr und das Landkennzeichen…

meine Frage ist wie ich das nun Java schaffe, da ich in diese Richtung mit Java bisher noch garnicht programmiert habe…

mein erster Versuch ist dieser hier, aber irgendwie bekomme ich nix zurück…

try {

// Send data
URL url = new URL("http://www.kat-datenbank.de/katdb/wsade-kat/");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(„lc“ + hltForm.substring(0, 1) + „&stamp=“ + lgBetrNr + „&iso=“ + erzgLand.substring(0, 2));
wr.flush();

// Get the response
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) {
}

hoffe ihr könnt mir weiterhelfen…

Liebe Grüße…

Moien

ich habe da mal eine Frage… ich würde gerne an eine
HTML-Seite
("http://www.kat-datenbank.de/katdb/wsade-kat/") eine Anfrage
zusenden… ich müsste 3 Parameter übergeben, Haltungsform,
Legebetriebsnr und das Landkennzeichen…

Und zwar als POST.

URL url = new URL("http://www.kat-datenbank.de/katdb/wsade-kat/");
URLConnection conn = url.openConnection();

//Parameter festlegen (Paramternamen finden sich im HTML-Code):
conn.setRequestProperty(„Land“,„DE“);

conn.connect();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

… usw.

cu

Also irgendwie klappt das bei mir nicht…
kann das mal jemand ausprobieren… ich verstehe es nicht…
das ist doch genau das selbe was du mir empfohlen hast oder nicht Pumpkin?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class Query {

public static void main(String[] argv) {

Query q = new Query();

String result = q.doQuery(„2“, „1410612“, „DE“);
System.out.println(result);

}

private String content = null;

private URL url = null;

private URLConnection conn = null;

private String str = null;

private String doQuery(String hltForm, String lgBetrNr, String erzgLand) {

this.content = „lc=“ + URLEncoder.encode(hltForm.substring(0, 1))

  • „&stamp=“ + URLEncoder.encode(lgBetrNr) + „&iso=“
  • URLEncoder.encode(erzgLand.substring(0, 2));

try {

this.url = new URL(
"http://www.kat-datenbank.de/katdb/wsade-kat/search.jsp");

this.conn = this.url.openConnection();
this.conn.setDoInput(true);
this.conn.setDoOutput(true);
this.conn.setUseCaches(false);
this.conn.setRequestProperty(„Content-Type“,
„application/x-www-form-urlencoded“);

OutputStreamWriter wr = new OutputStreamWriter(this.conn
.getOutputStream());
wr.write(this.content);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(this.conn
.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
str = str + line;

}
wr.close();
rd.close();

} catch (Exception e) {

}
return this.str;

}

}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moien

das ist doch genau das selbe was du mir empfohlen hast oder
nicht Pumpkin?

Nein ist es nicht. Ich habe z.B. von conn.setRequestProperty(„Land“,„DE“); geschrieben. Das kann ich in deinem Code nicht finden…

: private String doQuery(String hltForm, String lgBetrNr,


> String erzgLand) {  
>   
> try {  
>   
> this.url = new URL(  
>   
> "http://www.kat-datenbank.de/katdb/wsade-kat/search.jsp");  
>   
> this.conn = this.url.openConnection();

 conn.setRequestProperty("iso","...");
 conn.setRequestProperty("lc","...");
 conn.setRequestProperty("stamp","..");


> this.conn.setUseCaches(false);

Und nein, die Form ist nicht URLencoded. Die Form benutzt POST, nicht GET. Also ist das auch falsch:

this.conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

Der Teil ist komplett falsch, sowohl für POST als auch für GET:

OutputStreamWriter wr = new OutputStreamWriter(this.conn.getOutputStream());
wr.write(this.content);

cu