【问题标题】:How to get progress in Http post Android?如何在 Http post Android 中取得进展?
【发布时间】:2015-10-20 09:30:54
【问题描述】:

有没有办法获取进度数据,显示 ProgressBar(Horizo​​ntal),使用 DefaultHttpClient 和在参数中编码为 Base64 的图像。我还发送了一些其他参数。在 iOS 中也实现了类似的事情。Android 有什么锻炼方法吗?

编辑

HttpRequestBase request;
if(mode == MODE.POST)
  request = new HttpPost(((Context) mWeakreReference.get()).getString(R.string.base_url)+ url);

 request.setHeader(UrlService.HEADER_API_CONTENT_TYPE_KEY, UrlService.HEADER_API_CONTENT_TYPE_VALUE);
 request.setHeader(UrlService.HEADER_DEVICE_ID, Utility.getDeviceId(mWeakreReference.get()));
DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(request);

图片和数据张贴整齐。我必须显示进度条我怎样才能做到这一点。

【问题讨论】:

  • 添加更多细节和图片
  • 你不能用这个...尝试使用 multipart..

标签: android http http-post


【解决方案1】:

不确定您是否仍在寻找答案,但在花了一些时间在线寻找答案后,我建立了自己的小型图书馆: https://github.com/licryle/HTTPPoster

它基于一个StockOverflow answer 和另一个在网上找到的article

前者使用已弃用的类,后者不显示实体。它将整体包装在一个异步任务中。

使用方法:

  1. 下载和提取
  2. 在您的 build.gradle 模块文件中,添加依赖项:
dependencies 
{    
     compile project(':libs:HTTPPoster') 
}
  1. 您需要一个类来实现HttpListener 接口,以便您可以收听回调。它在HTTPListener 中有四个回调:

    • onStartTransfer
    • 正在进行中
    • onFailure
    • onResponse
  2. 配置 ASyncTask 并启动它。这是一个快速的用法:

HashMap<String, String> mArgs = new HashMap<>();
mArgs.put("lat", "40.712784");
mArgs.put("lon", "-74.005941");

ArrayList<File> aFileList = getMyImageFiles();

HttpConfiguration mConf = new HttpConfiguration(
    "http://example.org/HttpPostEndPoint",
    mArgs,
    aFileList,
    this, // If this class implements HttpListener
    null,  // Boundary for Entities - Optional
    15000  // Timeout in ms for the connection operation
    10000, // Timeout in ms for the reading operation
);

new HttpPoster().execute(mConf);

希望对您有所帮助 :) 也欢迎提出改进建议!它是最新的,我会根据需要对其进行扩展

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多