Android异步Http库post错误?

Android异步Http库post错误?,android,asynchronous,socket-timeout-exception,android-async-http,Android,Asynchronous,Socket Timeout Exception,Android Async Http,我目前正在使用库发送post/get请求。我以前没有任何问题,但现在我意识到,如果我在没有图像数据的情况下发送这个请求,它会给我超时错误。(如果我通过放置图像数据发送完全相同的请求,则不会出错。) 这是什么原因? 提前感谢。在比较请求和响应后,我发现该案例属于内容类型。有了图像,它就发布了多个部分,而没有图像,它就发布了其他内容 所以我进入了库中的RequestParams类,并进行了这些更改现在它工作正常。对于进一步的问题,我将发布我所做的更改 我放置了一个标志来确定此请求是否应作为多部分发布

我目前正在使用库发送post/get请求。我以前没有任何问题,但现在我意识到,如果我在没有图像数据的情况下发送这个请求,它会给我超时错误。(如果我通过放置图像数据发送完全相同的请求,则不会出错。)

这是什么原因?
提前感谢。

在比较请求和响应后,我发现该案例属于内容类型。有了图像,它就发布了多个部分,而没有图像,它就发布了其他内容

所以我进入了库中的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;
}
/**
*返回包含所有请求参数的HttpEntity
*/
公共HttpEntity getEntity(){
HttpEntity=null;
如果(!fileParams.isEmpty()){
...
}否则{
如果(应使用多部分){
SimpleMultipartEntity multipartEntity=新SimpleMultipartEntity();
//添加字符串参数
for(ConcurrentHashMap.Entry:urlParams)
.entrySet()){
addPart(entry.getKey(),entry.getValue());
}
//添加重复参数
对于(ConcurrentHashMap.Entry:urlParamsWithArray)
.entrySet()){
ArrayList values=entry.getValue();
for(字符串值:值){
multipartEntity.addPart(entry.getKey(),value);
}
}
实体=多方实体;
}否则{
试一试{
实体=新的UrlEncodedFormEntity(getParamsList(),编码);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
}
}
返回实体;
}

这可能仅仅是因为您的服务器没有响应吗?但就在这篇文章之后,我放了一张图片,突然服务器开始响应?诺普,别这么想。。。应该还有其他原因。可能是因为图像字段为emptyNoep而导致服务器崩溃,而不是因为这个原因。请检查下面的答案,我已经找到错误并解决了。您如何在服务器端处理您的文件?我正在尝试实现相同的功能,但我无法在服务器上捕获我的映像文件(asp.net)-我看到除文件之外的所有请求参数。。。
/**
 * 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;
}