Android post file and text
I have 2 methods at the momen开发者_Python百科t 1 to post a file, and another to post some text, they are below
Post the data...
public void postData() {
// Create a new HttpClient and Post Header
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
EditText et = (EditText) findViewById(R.id.entry);
String enteredName = et.getText().toString();
gender();
category();
nameValuePairs.add(new BasicNameValuePair("name",enteredName));
nameValuePairs.add(new BasicNameValuePair("gender",radio));
nameValuePairs.add(new BasicNameValuePair("cat",radio2));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2:90/upload.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
post the file...
public void postFile(){
File file = new File(filedir2);
try {
System.out.println(filedir2);
HttpClient client = new DefaultHttpClient();
String postURL = "http://10.0.2.2:90/mobileupload.php";
HttpPost post = new HttpPost(postURL);
FileBody bin = new FileBody(file);
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("image", bin);
post.setEntity(reqEntity);
HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
Log.i("RESPONSE",EntityUtils.toString(resEntity));
}
} catch (Exception e) {
e.printStackTrace();
}
}
I have made a php file that combines both mobileupload.php and upload.php, i was just wondering if there was a way i could get this into one method and just do one post?
Help would be appreciated
Thanks
James
You can use something like this:
File file = new File("FileToSend.txt");
HttpClient client = new HttpClient();
String url = "http://www.yourdomain.com/destination.php";
PostMethod postMethod = new PostMethod(url);
Part[] parts = {new FilePart(file.getName(), file)};
postMethod.setParameter("name", "value"); // set parameters like this instead in separate call
postMethod.setRequestEntity( new MultipartRequestEntity(parts, postMethod.getParams()));
int status = client.executeMethod(postMethod);
精彩评论