如何在Android中将标题传递给WebView

时间:2014-03-20 05:08:54

标签: android android-webview postdata

我使用postUrl()将发布数据作为Json传递给Android中的WebView。现在我想传递标题“Content-Type:application / json”以及它。如何实现呢?

3 个答案:

答案 0 :(得分:0)

这可能会对你有所帮助:)。

       HttpPost httpPost = new HttpPost(url_src);
HttpParams httpParameters = new BasicHttpParams();
httpclient.setParams(httpParameters);
StringEntity se = new StringEntity(str,"UTF-8");
    se.setContentType("application/json");
httpPost.setEntity(se); 

     httpPost.setHeader("userId", ""+userId);//userID
     httpPost.setHeader("machineId", machineId);//deviceUserMachineID

     response = httpclient.execute(httpPost);

答案 1 :(得分:0)

我相信这会有所帮助:link 看起来你实际上不能使用postUrl()发送标头,只能使用loadUrl()方法。

答案 2 :(得分:0)

可以使用标题发布我在项目中完成的数据   我发给你我的代码......

            HttpParams par = new BasicHttpParams();
            //par.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
            int timeoutConnection = 30000;
            HttpConnectionParams.setConnectionTimeout(par, timeoutConnection);
            int timeoutSocket = 10000;
            HttpConnectionParams.setSoTimeout(par, timeoutSocket);

            DefaultHttpClient httpClient = new DefaultHttpClient(par);
         //   httpClient.setParams(par);

            HttpPost httpPost = new HttpPost(url);

                 httpPost = new HttpPost(url);
                 if(postMessage==null)
                     throw new IllegalArgumentException("please send post data as well");
                byte[] data =postMessage.toString().getBytes("UTF-8");

                String base64 = Base64.encodeToString(data, Base64.DEFAULT);
                System.out.println("Base64: "+base64);

                // httpPost.setEntity(new UrlEncodedFormEntity(params));
                  httpPost.setEntity(new StringEntity(base64));

            httpPost.setHeader("token", app.getToken());


           httpResponse = httpClient.execute(httpPost);
           HttpEntity httpEntity = httpResponse.getEntity();


             is = httpEntity.getContent();
               System.out.println("httpEntity.getContent():"+ is );
             BufferedReader reader = new BufferedReader(new InputStreamReader(
              is, "iso-8859-1"));

             StringBuilder sb = new StringBuilder();
             String line = null;
             while ((line = reader.readLine()) != null) {
                 sb.append(line + "\n");
             }
             is.close();
             data = sb.toString();
              //remember httpconnection should be in background thread 
              // if you use asynchtask then upper code should be in doinbackground method 
              //and in onpostexecution do data load in webview

             webview.loadData(data, "text/html","UTF-8");