2012-08-28 9 views
10

Necesito publicar datos en el servidor (con el campo de encabezado "referer") y cargar la respuesta en Webview.Enviar solicitud de publicación junto con HttpHeaders en Android

Ahora, hay métodos diferentes (de Android WebView) para hacer partes de ella, como se encuentra:

void loadUrl(String url, Map<String, String> additionalHttpHeaders) 

Carga la URL dada con las cabeceras HTTP adicionales especificados.

void loadData(String data, String mimeType, String encoding) 

carga los datos que figuran en esta vista web usando un esquema de URL 'datos'.

void postUrl(String url, byte[] postData) 

Carga la URL con postData utilizando el método "POST" en este WebView.

loadUrl() permite enviar HttpHeaders pero no permite enviar datos de publicaciones, otros métodos parecen no estar permitiendo enviar HttpHeaders. ¿Me estoy perdiendo algo o lo que estoy intentando no es posible?

+0

cualquier uno tiene algo de suerte con esto? – Ghedeon

+0

alguien aquí que puede ayudar con este problema? – dcool

+0

También tengo el mismo problema. por favor, cualquier persona tiene un enlace para ayudarme – ashraful

Respuesta

1

Puede ejecutar el HttpPost manualmente así:

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://www.yoursite.com/postreceiver"); 

// generating your data (AKA parameters) 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("ParameterName", "ParameterValue")); 
// ... 

// adding your headers 
httppost.setHeader("HeaderName", "HeaderValue"); 
// ... 

// adding your data 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

HttpResponse response = httpclient.execute(httppost); 

Consigue el response como String:

BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
StringBuilder builder = new StringBuilder(); 
for (String line = null; (line = reader.readLine()) != null;) { 
    builder.append(line).append("\n"); 
} 
String html = builder.toString(); 

Ahora usted puede poner el html en yourWebView utilizando loadData():

yourWebView.loadData(html ,"text/html", "UTF-8"); 
Cuestiones relacionadas