Hola,
Una consulta, a ver si me pueden guiar que a esta altura ya estoy algo mareado.
Necesito enviar un formulario típico a un Webservice, unos cuantos datos y un archivo adjunto (en este caso una imagen de la sdcard).
de ante mano, muchas gracias.
public class MainActivity extends Activity {
private class MyAsyncTask extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPostExecute(Void result) {
t.setText("POST REALIZADO");
}
@Override
protected void onPreExecute() {
}
@Override
protected Void doInBackground(Void... params) {
AbstractHttpClient client = new DefaultHttpClient();
String URL = "http://miservidor/miservlet";
File file = new File(nf);
StringBody txt = null;
try {
txt = new StringBody(t.getText().toString());
} catch (UnsupportedEncodingException e1) {
}
FileBody im = new FileBody(file);
HttpPost POST = new HttpPost(URL);
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("texto", txt);
reqEntity.addPart("imagen", im);
POST.setEntity(reqEntity);
try {
client.execute(POST);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
private ImageView im;
private EditText t;
private String nf;
private static final int SELECT_IMAGE = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im = (ImageView) findViewById(R.id.imageView1);
t = (EditText) findViewById(R.id.editText1);
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener() {
public void onClick(View arg0) {
//Intent in = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent in = new Intent();
in.setAction(Intent.ACTION_PICK);
in.setType("image/*");
startActivityForResult(in, SELECT_IMAGE);
}
});
findViewById(R.id.button2).setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
new MyAsyncTask().execute((Void[])null);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (Activity.RESULT_OK == resultCode) {
if (requestCode == SELECT_IMAGE) {
Uri uri = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, filePathColumn,
null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
nf = cursor.getString(columnIndex);
cursor.close();
Toast.makeText(getApplicationContext(), nf, Toast.LENGTH_LONG)
.show();
Bitmap bm = BitmapUtils.decodeSampledBitmapFromResource(nf,
im.getWidth(), im.getHeight());
im.setImageBitmap(bm);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}