SORU
29 Mayıs 2010, CUMARTESİ


Gönderen görüntüleri kullanarak Http Post

Django sunucusu kullanarak Http Post android istemciden bir görüntü göndermek istiyorum. Resim Galerisi seçilir. Şu anda, liste değer adını Çift JSON Django sunucu ve alıcı yanıtları için gerekli veri göndermek için kullanıyorum. Aynı yaklaşım resimler (resimler JSON yanıtları gömülü URL) için kullanılabilir mi?

Daha iyi bir yöntem olan Ayrıca: görüntü uzaktan sunucudan indirmeden veya indirdikten ve bit Eşlem bir dizi bunları saklamak ve yerel olarak onları kullanmadan erişme? Görüntüleri az (&; 10 lt) ve küçük boyutlu (50*50 dıp).

Bu sorunları çözmek için herhangi bir öğretici çok mutluluk duyacağız.

Edit: resimler galerisinden seçilmiş gerekli boyuta Ölçekleme sonra. sunucuya gönderilir

CEVAP
30 Mayıs 2010, Pazar


Yüklemek istediğiniz resmin yolunu ve dosya adını bildiğini varsayıyorum. Bu dize anahtar adı olarak NameValuePair kullanarak image Ekle.

Fotoğraf gönderme yapmış HttpComponents libraries kullanılarak yapılabilir. Bağımlılıklar paketi ile ilgili en yeni HttpClient (şu anda 4.0.1) ikili indirmek ve apache-mime4j-0.6.jar httpmime-4.0.1.jar kopyalayın projenize ekleyin ve Java için yol inşa.

Sınıfınız için aşağıdaki ithalat eklemek gerekir.

import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;

Şimdi YAZI için bir resim eklemek için MultipartEntity isteği oluşturabilirsiniz. Aşağıdaki kod bunu yapmak için nasıl bir örnek gösterir:

public void post(String url, List<NameValuePair> nameValuePairs) {
    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpPost httpPost = new HttpPost(url);

    try {
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        for(int index=0; index < nameValuePairs.size(); index  ) {
            if(nameValuePairs.get(index).getName().equalsIgnoreCase("image")) {
                // If the key equals to "image", we use FileBody to transfer the data
                entity.addPart(nameValuePairs.get(index).getName(), new FileBody(new File (nameValuePairs.get(index).getValue())));
            } else {
                // Normal string data
                entity.addPart(nameValuePairs.get(index).getName(), new StringBody(nameValuePairs.get(index).getValue()));
            }
        }

        httpPost.setEntity(entity);

        HttpResponse response = httpClient.execute(httpPost, localContext);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Bu, doğru yönde biraz yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Garrett Müller

    Garrett Mül

    26 HAZİRAN 2009
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008