我正在尝试将存储在 Android 手机上的一些二进制数据作为文件发送到用 PHP 创建的 Web 服务。
我已经尝试过使用MultiPart
,ValuePair
但没有运气..!
我还用 Java 创建了一个控制台应用程序,它从 Windows 上的静态位置读取二进制文件并使用相同的 PHP 服务,并且使用它可以正常工作MultiPart
,下面是它的代码:
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file,"text/plain");
mpEntity.addPart("qLog", new StringBody(readFileAsString(file.getAbsolutePath()),
Charset.defaultcharset)));
mpEntity.addPart("fileName", new StringBody(fileName));
mpEntity.addPart("personid", new StringBody(userid));
功能readFileAsString()
是:
private String readFileAsString(String filePath) throws IOException {
StringBuffer fileData = new StringBuffer();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
char[] buf = new char[1024];
int numRead=0;
while ((numRead=reader.read(buf)) != -1) {
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
}
reader.close();
return fileData.toString();
}
但是当我在 Android 上执行此操作时,它不会维护二进制值。我认为的原因是由于Android中的默认编码是UTF-8。
你能在这里帮忙吗?如何获取从 Android 发送到 PHP 服务的二进制数据?