android 从服务器端下载图片列表 服务器端封装json

一般只获得几张图片 可以直接访问图片URL 但有两种情况是不行的 完成不了需求:
       一:服务器端用的服务器不支持文件资源共享 如:jboss
       二:当客户端请求多张 如:用户列表头像
 这时以本人的开发经验得出:图片放在服务器端的一个磁盘文件夹中 客户端将图片名字传到服务器端 服务器端将图片用json装起来传到客户端
 代码如下:(中间有数据库)
 客户端主要代码:
 protected Integer doInBackground(Object... params) {
    if (NetHelper.isNetAvailable(POIDetailActivity.this)) {
     imagePath = (String)params[0];
     iv = (ImageView)params[1];
     HashMap<String, String> item = new HashMap<String, String>();
     String url = String.format(Constants.COMMON_URL, 107);
     item.put("image", imagePath);
     item.put("type", "0");
     try {
      InputStream is = NetHelper.doPostImageRequest(url, item, null);
      if (is != null) {
       try {
        byte[] data = Tools.inputStreamToBytes(is);
        if(data != null){  
                  bm = BitmapFactory.decodeByteArray(data, 0, data.length); 
             }  
       } catch (Exception e) {
        LogHelper.errorLog(TAG, e.toString());
        return Constants.CODE_NETWORK_CONNECT_ERROR;
       }
      }
     } catch (ClientProtocolException e) {
      LogHelper.errorLog(TAG, e.toString());
      return Constants.CODE_CLIENT_PROTOCOL_ERROR;
     } catch (IOException e) {
      LogHelper.errorLog(TAG, e.toString());
      return Constants.CODE_NETWORK_CONNECT_ERROR;
     } catch (JSONException e) {
      LogHelper.errorLog(TAG, e.toString());
      return Constants.CODE_JSON_ERROR;
     }
    } else {
     return Constants.CODE_NO_AVAILABLE_NETWORK;
    }
    return Constants.CODE_SUCCESS;
   }
   
 服务器端主要代码:
 /*请求图片资源*/
public static InputStream doPostImageRequest  (String url, Map<String, String> params, Map<String, String> headData) 
  throws ClientProtocolException, IOException, JSONException{
   HttpPost httpPost = new HttpPost(url);
   LogHelper.debugLog(TAG, ">>>>>>>>>>doPostRequest.url:"+url);
   InputStream is = null;
   
   // 设置HTTP POST 请求的头信息
   if(headData != null)
    for(Map.Entry<String, String> entry : headData.entrySet())
     httpPost.setHeader(entry.getKey(), entry.getValue());
   
   // 封装POST请求传送的数据
   ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
   if(params != null)
    for(Map.Entry<String, String> entry : params.entrySet())
     pairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
   
   // 对POST请求的数据进行UTF-8转码
   UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(pairs, ENCODING);
   httpPost.setEntity(formEntity);
   HttpResponse response = getHttpClient().execute(httpPost);
   if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
    HttpEntity resEntity = response.getEntity();
    is = resEntity.getContent();
   }else{
    httpPost.abort();
   }
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值