我正在使用 Webview 发送数据到交换邮件服务器。(http post 不适用于带有大附件的邮件,因此尝试了这种方法)。
请在下面查看我的代码。
如果我发送完全没有编码的数据,发送失败。如果我按照下面的代码对整个数据进行编码,它仍然会失败。
如果我尝试注释代码,我将数据存储为名称值对并对其进行编码,则会收到邮件但没有附件。那么在这里进行编码的正确方法是什么?附件的类型是 ContentBody 。所有其他参数都是字符串。
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,);
entity.addPart("hidid", new StringBody(hidid));
entity.addPart("hidchk", new StringBody(hidchk));
entity.addPart("hidcanary", new StringBody(canary));
entity.addPart("attach", attachment);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
entity.writeTo(bytes);
String fullUrl = baseUrl + "?ae=Dialog&t=Attach&a=Add";
webView.postUrl(fullUrl, EncodingUtils.getBytes(bytes.toString(),"BASE64"));
/* List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("hidid", hidid));
parameters.add(new BasicNameValuePair("hidchk", hidchk));
parameters.add(new BasicNameValuePair("hidcanary", canary));
parameters.add(new BasicNameValuePair("attach", attachment.toString()));
UrlEncodedFormEntity entity1 = new UrlEncodedFormEntity(parameters);
String fullUrl = baseUrl + "?ae=Dialog&t=Attach&a=Add";
webView.postUrl(fullUrl, EntityUtils.toByteArray(entity1)); */
我看到他的 Android WebView::postUrl 方法更难编码为 "application/x-www-form-urlencoded" 。