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
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.
HTTP POST cevap başlık curl kullanarak...
Nasıl ve HTML ve PHP ile birden fazla ...
Nasıl Excel VBA kullanarak bir sunucu ...
Görüntü ve Metin ios Upload HTTP POST ...
Gönderen HttpURLConnection ile POST ku...