2

我正在使用 postUrl() 将帖子数据作为 Json 传递给 Android 中的 WebView。现在我想同时传递一个标题“Content-Type:application/json”。如何实现?

4

3 回答 3

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);
于 2014-03-20T05:49:40.463 回答
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");
于 2014-12-12T20:46:51.273 回答
0

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

于 2014-12-04T06:13:54.963 回答