類似于Ruby,在上面調試成功後,將功能遷移到了Android應用上面。

 
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
   
import android.util.Base64;
import android.util.Log;
   
    /**
     * TODO FIX Check the file length, it's long not int.This may lead the
     * problem.
     
     * @param fileName
     * @param url
     * @return
     */ 
    public static boolean httpPostBase64(String fileName, String url) {
        try 
            File file = new File(fileName);
            FileInputStream in = new FileInputStream(file);
            byte[] buffer = new byte[(int) file.length() + 100]; 
            int length = in.read(buffer);
            String data = Base64.encodeToString(buffer, 0, length,
                    Base64.DEFAULT); 
   
            HttpPost httpRequest = new HttpPost(url);
            /*
             * NameValuePair实现请求参数的封装
             */ 
            List<NameValuePair> params = new LinkedList<NameValuePair>(); 
            params.add(new BasicNameValuePair("data", data)); 
   
            /* 添加请求参数到请求对象 */ 
            httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 
            /* 发送请求并等待响应 */ 
            HttpResponse httpResponse = new DefaultHttpClient() 
                    .execute(httpRequest); 
            /* 若状态码为200 ok */ 
            if (httpResponse.getStatusLine().getStatusCode() != 200) { 
                Log.d("Code", httpResponse.getStatusLine().toString());
                return false
            
   
        catch (Exception e) {
            for(StackTraceElement s:e.getStackTrace())
                Log.d("Exception",s.toString());
            Log.d("Exception",e.getLocalizedMessage());
               
            return false
        
   
        return true
    }
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()