Android no puede enviar solicitud GET con HttpURLConnection

Estoy intentando utilizar un HttpURLConnection en mi uso. He establecido mi método de solicitud a 'GET', pero cuando intento recuperar el flujo de salida, entonces el método se cambia a 'POST'! No estoy seguro de que sea la razón, pero mi servidor JSON (utilizo JAX-RS) devuelve una página en blanco cuando envío una solicitud usando un 'POST'.

Aquí hay un fragmento de mi código:

// Create the connection HttpURLConnection con = (HttpURLConnection) new URL(getUrl() + uriP).openConnection(); // Add cookies if necessary if (cookies != null) { for (String cookie : cookies) { con.addRequestProperty("Cookie", cookie); Log.d("JSONServer", "Added cookie: " + cookie); } } con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestMethod("GET"); con.setConnectTimeout(20000); // Add 'Accept' property in header otherwise JAX-RS/CXF will answer a XML stream con.addRequestProperty("Accept", "application/json"); // Get the output stream OutputStream os = con.getOutputStream(); // !!!!! HERE THE REQUEST METHOD HAS BEEN CHANGED !!!!!! OutputStreamWriter wr = new OutputStreamWriter(os); wr.write(requestP); // Send the request wr.flush(); 

Gracias por su respuesta. Eric

Pero las solicitudes GET se supone que no tienen contenido … por escrito en el flujo de salida de conexiones que está cambiando la naturaleza de la solicitud a un POST. La biblioteca está siendo bastante útil para detectar que está haciendo esto … el documento de getOutputStream explícitamente afirma "El método de solicitud predeterminada cambia a" POST "cuando se llama a este método."

Si necesita enviar datos al servidor en el GET, entonces debe codificarse en los parámetros de URL de la forma normal.

Eliminar con.setDoOutput(true); de su código. A continuación, la solicitud de servicio web funciona bien con el método GET

HttpURLConnection utiliza el método GET de forma predeterminada. Utilizará POST si setDoOutput(true) ha sido llamado.

El comentario anterior se puede encontrar en la siguiente URL

Android HTTPURLConnection Clase

  • Cadena de resultados de Android HttpUrlConnection truncada
  • Android HttpsUrlConnection eofexception
  • DELETE La solicitud no funciona, devuelve el código de estado 200
  • Simple HttpURLConnection archivo POST multipart / form-data de android a google blobstore
  • Android: HttpsUrlConnection con autenticador para la autenticación básica itera siempre cuando la contraseña es incorrecta (en la respuesta 401)
  • Evitar llamadas de método CONNECT no solicitadas desde HttpURLConnection
  • httpUrlConnection no devuelve la respuesta en caché cuando el servidor devuelve HTTP_NOT_MODIFIED
  • Comportamiento extraño al descargar html usando HttpURLConnection
  • Java.net.SocketTimeoutException: timeout
  • Parse Exception: En la línea 1, columna 0: no se encontró ningún elemento
  • ¿Longitud máxima del contenido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.