【发布时间】:2017-12-14 18:42:22
【问题描述】:
我想发送 multipart/form-data 。我想在一个请求中发送一张照片和一个json。我这样做了:
JSONObject jsonObject = new JSONObject();
SharedPreferences sp ;
sp = getSharedPreferences("pfref", Activity.MODE_PRIVATE);
String pass = sp.getString("pass", "");
String firm = sp.getString("firm", "");
String login = sp.getString("login", "");
try {
jsonObject.put("company", firm);
jsonObject.put("user", login);
jsonObject.put("secure_password", HashUtil.md5(pass));
jsonObject.put("secure_device_id", HashUtil.md5(DeviceUtil.getDeviceId(PhotoActivity.this)));
} catch (JSONException e) {
e.printStackTrace();
}
ImageLoader imageLoader = ImageLoader.getInstance();
FileEntity fileEntity = null;
try {
fileEntity = new FileEntity(file, "image/jpeg");
} catch (Exception e) {
e.printStackTrace();
}
RequestParams params = new RequestParams();
BasicHeader[] headers = new BasicHeader[]{new BasicHeader("Authorization", "SCToken " + token)};
params.put("photos", fileEntity);
params.put("metadata",jsonObject);
client.post(PhotoActivity.this, RestClient.getAbsoluteUrl("photos/note"), headers, params, "multipart/form-data", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d("sokces", "uploadFile response: " + statusCode);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("sokces fail", "uploadFile ERROR! " + statusCode);
}
});
但它不起作用。当我将内容类型更改为 application/json 我有一个 415 status 但是当我有一个 multipart/form-data 我有一个 400 status 。这是一个失败状态。
【问题讨论】:
-
您在免费托管服务器上吗?在那种情况下,this question 说这可能是个问题
-
对于一个快速的建议,您应该先尝试邮递员的请求,然后将其转换为 java 或任何东西。
-
@AlNoman 这是我对肥皂的要求:paste.ofcode.org/f9eXv3e6RtQhv3DSazVu4A
-
@tompok 是您在向邮递员请求后得到的响应还是请求邮递员?
-
@AlNoman 这是来自 SoapUI 的请求
标签: android multipartform-data