【问题标题】:Android: HttpClient, cannot retry request with a non-repeatable request entityAndroid:HttpClient,无法用不可重复的请求实体重试请求
【发布时间】:2013-09-09 13:34:16
【问题描述】:

尝试像这样从 Android 应用程序向服务器发送文件内容:

 HttpClient httpclient = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

final InputStreamEntity reqEntity = new InputStreamEntity(
                    gdFileSystemDelegate.openFileInput(openFileInput(FilePath), -1);
reqEntity.setContentType("application/octet-stream");

httppost.setEntity(reqEntity);
httpClient.execute(httppost);

但它会引发异常: 无法使用不可重复的请求实体重试请求

这是什么意思?如何解决?

【问题讨论】:

    标签: android http httpclient httprequest


    【解决方案1】:

    尝试在 DefaultHttpClient 中将协议参数 http.protocol.expect-continue 设置为 true:

    @Override
    protected HttpParams createHttpParams() {
        HttpParams params = super.createHttpParams();
        HttpProtocolParams.setUseExpectContinue(params, true);
        return params;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 2018-08-20
      • 2012-12-03
      • 2021-12-12
      • 2020-11-20
      • 2011-02-04
      • 2023-03-26
      • 2014-03-14
      相关资源
      最近更新 更多