2011-07-27 10 views
6

Necesito agregar un encabezado de solicitud no estándar que tenga un formato como este: (X-MMP-Params: fs = 640x0). estoy usando HTTPClient Aquí está el código:¿Cómo agregar un encabezado de solicitud a la solicitud de HttpClient?

HttpClient client = new DefaultHttpClient(); 
String getURL = "http://example.com"; 
HttpGet get = new HttpGet(getURL); 
get.setHeader("X-MMP-Params","fs=640x0"); // I set my request header right here 
HttpResponse responseGet = client.execute(get); 

Es esta la forma correcta de hacerlo?

+0

¿Funciona? Para probar, puede configurar el encabezado 'User-Agent' y descargar una página que muestre un agente de usuario recuperado por el servidor (o cree su propia página PHP). Si el agente de usuario mostrado es el que usted configuró, entonces este método funciona. –

+3

Para aquellos que deambulan sobre esto y piensan: "¿Bien, fue la manera correcta ?!", la respuesta es sí. Esto funciona bien. – PFranchise

+0

¿Conoce el hecho de que [ya no debería usar 'HttpClient'] (http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http- cliente); al menos no para proyectos de Android. – toKrause

Respuesta

0

la solicitud GET se hace con HttpGet:

public static InputStream getInputStreamFromUrl(String url) { 
    InputStream content = null; 
    try { 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpResponse response = httpclient.execute(new HttpGet(url)); 
    content = response.getEntity().getContent(); 
    } catch (Exception e) { 
    Log.("[GET REQUEST]", "Network exception", e); 
    } 
    return content; 
} 

La solicitud POST se hace con HttpPost:

public void postData() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
     nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
} 

personalmente resumen recomendaría probar Retrofit en siguiente manera

public interface YourUsersApi { 

    //You can use rx.java for sophisticated composition of requests 
    @GET("https://stackoverflow.com/users/{user}") 
    public Observable<SomeUserModel> fetchUser(@Path("user") String user); 

    //or you can just get your model if you use json api 
    @GET("https://stackoverflow.com/users/{user}") 
    public SomeUserModel fetchUser(@Path("user") String user); 

    //or if there are some special cases you can process your response manually 
    @GET("https://stackoverflow.com/users/{user}") 
    public Response fetchUser(@Path("user") String user); 

} 
+0

¡No veo los encabezados! –

Cuestiones relacionadas