Cómo establecer encabezados HttpPost para una solicitud de cliente en Java Android
Estoy teniendo apuro el conseguir del HttpClient de Apache para enviar correctamente un encabezado de HttpPost.
No tengo problemas para enviar pares de valor de nombre y demás, pero cuando establezco o agrego un encabezado de POST, desaparece cuando se realiza la solicitud.
- ¿Cómo autorizo cada solicitud de API que viene del cliente (nativo)?
- Los botones 'cancelar' y 'aceptar' de la página de inicio de sesión de Google OAuth no están habilitados desde el 22 de agosto
- Token de acceso de linkedin para la aplicación android
- Respaldo del navegador y actividad de Android
- Cifrar datos en SharedPreferences
He intentado setHeader y addHeader, así como probar ambos a la vez.
Aquí está mi código:
HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("https://posttestserver.com/post.php"); httppost.setHeader("Authorization: Bearer", accessToken); httppost.addHeader("Authorization: Bearer", accessToken); Log.d("DEBUG", "HEADERS: " + httppost.getFirstHeader("Authorization: Bearer")); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httppost, responseHandler); Log.d("DEBUG", "RESPONSE: " + responseBody);
Además, la instrucción de depuración antes de ejecutar la solicitud imprime el encabezado correcto, por lo que sé que se está agregando y, a continuación, se eliminó más tarde.
Cualquier ayuda sería muy apreciada!
EDIT: Todo esto se ejecuta dentro de un AsyncTask si eso importa. No creo que lo haga, ya que hay una excepción de NetworkOnMainThread lanzado de otra manera, pero pensé que podría valer la pena mencionar.
- OnNewIntent (intención) no funciona como debería
- ¿Por qué no funciona gmail oauth en mi aplicación para Android?
- Pakage para verificar el token de inicio de sesión de Google en Go que se ejecuta en GAE
- Twitter4J + Android: El desafío de autenticación es una excepción nula
- Oauth de dos patas en Android
- ¿Por qué no puedo crear varios ID de cliente de OAuth 2.0 para el mismo nombre de paquete?
- Com.google.android.gms.auth.GoogleAuthException: Desconocido
- OAuth / OpenID - ¿Qué debo usar?
Trate de conectar el servicio que le dice a sus encabezados HTTP y capturar (simplemente imprimir HTML) la salida. Por lo menos sabrás si tus encabezados están realmente perdidos en el camino o quizás otra cosa.
Al menos un error en su código. Prueba esto en su lugar:
httppost.setHeader("Authorization", "Bearer "+accessToken);
Usted dijo que el encabezado no está en la respuesta en una de sus respuestas, sólo para aclarar, los encabezados no vuelven en la respuesta, que sólo se envían en la solicitud al servidor. Un rastreo de red o sesión de violinista puede mostrar la solicitud y la respuesta, y esto debería darle una respuesta definitiva de si se están dejando caer o no.
intente usar java.net.URLConnection.addRequestProperty(String field, String newValue)
Personalmente prefiero usar otro methos para establecer correctamente la autorización http:
httpClient.getCredentialsProvider().setCredentials( new AuthScope(hostname, port), new UsernamePasswordCredentials(user, pass));
- ¿O declaración en el interruptor / caso?
- ¿Qué puedo hacer cuando obtengo un error "no se puede resolver con un tipo"?