2 Stimmen

Java URL / HttpURLConnection wie man InputStream während der Buchung zu vermeiden?

Ist es möglich, eine POST-Methode Anforderung an einige URL zu tun und zu vermeiden, die Antwort zu lesen?

Egal wie sehr ich versuche, das Lesen der Antwort zu vermeiden, die Daten scheinen den Server nie zu erreichen, es sei denn, ich lese die Antwort seltsam?

Ich habe wirklich keinen Sinn darin, Antwortdaten zu lesen, da ich nur Daten abschicken werde (die Antwort wird sowieso immer leer sein).

 URL postURL = new URL("http://www.example.com/test/");
 HttpURLConnection con = (HttpURLConnection) postURL.openConnection();
 con.setUseCaches(false);
 con.setDoOutput(true);
 con.setDoInput(false); //why even make this if it doesn't function?
 con.setRequestMethod("POST"); 

 //PrintWriter out = new PrintWriter(con.getOutputStream());
 OutputStream out = con.getOutputStream();
 byte[] /*String postStr*/ bPost = ("foo1="+URLEncoder.encode("bar1")+"&"+  
                       "foo2="+URLEncoder.encode("bar2")+"&"+   
                       "foo3="+URLEncoder.encode("bar3").getBytes();
 out.write(bPost);

 //out.println(postStr); // send to server
 out.flush();
 out.close();   // close outputstream
 //con.getInputStream().close(); //thought maybe this would help but no change.

 /*
 //If I uncomment this it will work.
 String inputLine="";   //Stores the line of text returned by the server
 String resultsPage=""; // Stores the complete HTML results page

 BufferedReader in = new BufferedReader(
             new InputStreamReader(con.getInputStream()));

 while ((inputLine = in.readLine()) != null)
       resultsPage+=inputLine;
 in.close();
 */

3voto

user207421 Punkte 297318

Rufen Sie an. getResponseCode() nach dem Schreiben.

Dadurch erhalten Sie auch 404 als Antwortcode und nicht FileNotFoundException .

-1voto

Thilo Punkte 248982

Haben Sie versucht anzurufen con.connect() ?

Andernfalls wird es dies wahrscheinlich "faul" tun, wenn es unbedingt nötig ist (POST-Puffer voll, Beginn des Lesens der Antwort-Header usw.).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X