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.

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.

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)

http://developer.android.com/reference/java/net/URLConnection.html#addRequestProperty%28java.lang.String,%20java.lang.String%29

Personalmente prefiero usar otro methos para establecer correctamente la autorización http:

 httpClient.getCredentialsProvider().setCredentials( new AuthScope(hostname, port), new UsernamePasswordCredentials(user, pass)); 
  • ¿Puedo usar el AccountManager de Android para obtener el token de acceso de OAuth para AppEngine?
  • Cómo obtener refreshToken al usar GoogleAuthUtil
  • ¿Existe ya una biblioteca OAuth2 para Java / Android?
  • Mejor Recurso de Aprendizaje para OAuth
  • ¿Cómo implementar correctamente el inicio de sesión linkedIn?
  • LinkedIn scribe OAuth biblioteca no puede permitir el acceso a la cuenta de LinkedIn
  • Uso de los detalles de autenticación de Dropbox guardados en Android
  • Android Tumblr Oauth-signpost 401
  • Uso de Android AccountManager para la autorización OAuth2 de terceros
  • "Http: // {root_dir} / oauth / token" Archivo no encontrado en Magento para registrar la aplicación REST API
  • Uso de OAuth con Scribe en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.