我正在开发一个使用webview的Android应用程序,我正在尝试完成的是通过使用post.Url()在我的php文件上成功传递base64编码的图像,然后在html5画布上显示它。
我的php文件(web)没有任何困难我的问题是:
String url = "http://localhost/folder/postImage.php";
String encodedImage = iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==";
String postData = "image=data:image/png;base64," + encodedImage;
webview.postUrl(url,EncodingUtils.getBytes(postData, "BASE64"));
所以,基本上这就是我的编码工作方式,我需要的是保留postData的值,而不是再次编码到BASE64,因为它已经在BASE64中编码了。
而不是:
webview.postUrl(url,EncodingUtils.getBytes(postData, "BASE64"));
我应该在这里放什么:
webview.postUrl(url,EncodingUtils.getBytes(postData, "???????"));
希望你能解决我的问题,或者至少建议你。谢谢! :)
答案 0 :(得分:0)
HTTP.UTF_8
我通过http post base 64和php运行它。
try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://www.mywebsite.com/foo.php";
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("image", image_str));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,
HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {
Log.i("RESPONSE", EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}