您好我正在使用loopJ Asynchronous Http Client将值发布到Web服务。我面临的问题是。我将我的Bitmap编码为Base64 String,并将此字符串用作webservice的参数。我总是得到ClientProtocolException而没有响应。我知道字符串有问题。但我不知道问题是什么可能是一个大字符串?我需要帮助。
这是我的代码
client.get(
"http://website.com/users.php?task=addGeneralSettings&userID="
+ user.getUserID() + "&vat="
+ URLEncoder.encode(String.valueOf(user.getVat()))
+ "&company=" + URLEncoder.encode(user.getCompany())
+ "&address1=" + URLEncoder.encode(user.getAddress1())
+ "&address2=" + URLEncoder.encode(user.getAddress2())
+ "&telephone=" + user.getTelephone() + "&fax="
+ user.getFax() + "&email=" + user.getEmail()
+ "&website=" + URLEncoder.encode(user.getWebsite())
+ "&vatNum=" + URLEncoder.encode(user.getVatno())
+ "&CompanyReg="
+ URLEncoder.encode(user.getCompanyNum()) + "&logo="
+ (user.getLogo()), new AsyncHttpResponseHandler() {
public void onSuccess(String response) {
Log.v("web response ", response);
try {
json = new JSONObject(response);
if (json.getBoolean("status")) {
delegate.settingsAdded(user.getLogo());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
getLogo()是我的base64字符串。这个长度很大。我使用以下代码将Image转换为Base64字符串。
public static String encodeTobase64(Bitmap image) {
Bitmap immagex = image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
return imageEncoded;
}