1

私はこのトピックについて多くの研究を行っていますが、手がかりはありません..

Web サービスから画像をダウンロードしていますが、特定の画像のみをダウンロードするには、投稿パラメータに URL を渡す必要があります。

Image の形式は私もわかりませんが、AppTester を使用しているときに URL で post パラメータの値を渡すと、Web サービスを介して得られる応答は "image.png" です。

ここで試しているコードは次のとおりです。

    public String HTTPConnect(String uri1,List<NameValuePair> list,Context context)
{

    try {
        DefaultHttpClient httpClient = new DefaultHttpClient();

        HttpPost httpPost = new HttpPost(uri1);
        if(list!=null)
        {

        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list);
        httpPost.setEntity(formEntity);

        }
         //URI uri=httpPost.getURI();
        HttpResponse httpResponse = httpClient.execute(httpPost);
     //   Log.i("RESPONSE RETURNS THIS :", ""+httpResponse);
     //   Log.i("getEntity().getContent() RETURNS THIS :", ""+httpResponse.getEntity().getContent());
        in = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
       // String NL = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {
              sb.append(line +" "); //sb.append(line +NL);
        }
        in.close();

        result = sb.toString();

}
    catch(UnsupportedEncodingException e)
    {
        String err = (e.getMessage()==null)?"Cant connect to server":e.getMessage();
        Log.e("Network Error:",err); 
    }
    catch (MalformedURLException e) {
        String err = (e.getMessage()==null)?"Malformed Exception":e.getMessage();
        Log.e("Malformed Exception:",err); 

     } 
     catch(Exception ex)
     {
        // Log.i("Exception,ex", ex.getMessage());
         String err = (ex.getMessage()==null)?"NetworkConnectionException":ex.getMessage();
         Log.e("NetworkConnectionException:",err); 
     }
    finally {

        if (in != null) {
            try {
                    in.close();
             } catch (Exception ex) {
                 String err = (ex.getMessage()==null)?"Excepion":ex.getMessage();
                 Log.e("Exception:",err); 
            }
        }

     }

    return result;

  }

別のクラスでこのメソッドを呼び出して、結果の文字列を次のようにバイトに変換します。

           ArrayList<NameValuePair> postParameters2 = new ArrayList<NameValuePair>();

    postParameters2.add(new BasicNameValuePair("Token", "token"));
    postParameters2.add(new BasicNameValuePair("Action", "GetThumb"));

            Bitmap bMap=null;
        String CustomerImgXml=HTTPConnect("URL", postParameters2, this);
        bMap=BitmapFactory.decodeByteArray(CustomerImgXml.getBytes(), 0, CustomerImgXml.length());

誰か助けてください..私はここで非常に混乱しています

4

2 に答える 2

1

このコードを試してください

Bitmap myBitmap; 
 try {
                      url = new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Sachin_Tendulkar.jpg/250px-Sachin_Tendulkar.jpg");
                      connection = (HttpURLConnection) url
                                    .openConnection();

                        connection.setDoInput(true);


                            connection.connect();
                             connection.setReadTimeout(120000);
                             InputStream     input = connection.getInputStream();
                             myBitmap = BitmapFactory.decodeStream(input);

                            } catch (IOException e) {
                        e.printStackTrace();
                        return null;
                    }

ImageView.setImageBitmap(myBitmap);
于 2012-04-20T07:14:54.450 に答える
0

最後に、私は自分で答えを得ました:

私は次のようにコーディングを行いました:

    public InputStream HTTPImage(String uri1,List<NameValuePair> list) throws Exception
{
    InputStream input=null;
try {
    DefaultHttpClient httpClient = new DefaultHttpClient();

    HttpPost httpPost = new HttpPost(uri1);
    Log.i("postParameter,list", ""+list);
    if(list!=null)
    {

    UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list);
    httpPost.setEntity(formEntity);

    }

    HttpResponse httpResponse = httpClient.execute(httpPost);
    input=(InputStream) httpResponse.getEntity().getContent();

        return input;
     }

そして別のクラスで:私はそれを次のように使用しています:

    InputStream in=null;
        in=con2.HTTPImage("https://hd.picbusiness.com/icmdev/hhw/App/", postParameters2);
        Bitmap bMap=BitmapFactory.decodeStream(in);
        img.setImageBitmap(bMap);
        Log.i("bMap", ""+bMap);

皆さんのサポートに感謝します:)

于 2012-04-20T09:53:27.200 に答える