开发者

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);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜