在比较了请求和响应之后,我发现这个案例是内容类型的。有了图像,它就发布了多部分,没有它就发布了其他东西。
所以我进入了库中的 RequestParams 类,并进行了这些更改。现在它工作正常。对于进一步的麻烦,我发布了我所做的更改。
我放了一个标志来确定这个请求是否应该作为多部分发布:
private boolean shouldUseMultiPart = false;
我创建了一个构造函数来设置这个参数:
public RequestParams(boolean shouldUseMultiPart) {
this.shouldUseMultiPart = shouldUseMultiPart;
init();
}
然后在 getEntity() 方法上,我应用了这些行:
/**
* Returns an HttpEntity containing all request parameters
*/
public HttpEntity getEntity() {
HttpEntity entity = null;
if (!fileParams.isEmpty()) {
...
} else {
if (shouldUseMultiPart) {
SimpleMultipartEntity multipartEntity = new SimpleMultipartEntity();
// Add string params
for (ConcurrentHashMap.Entry<String, String> entry : urlParams
.entrySet()) {
multipartEntity.addPart(entry.getKey(), entry.getValue());
}
// Add dupe params
for (ConcurrentHashMap.Entry<String, ArrayList<String>> entry : urlParamsWithArray
.entrySet()) {
ArrayList<String> values = entry.getValue();
for (String value : values) {
multipartEntity.addPart(entry.getKey(), value);
}
}
entity = multipartEntity;
} else {
try {
entity = new UrlEncodedFormEntity(getParamsList(), ENCODING);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
return entity;
}