Обратиться к методу класса

Ответить
bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Обратиться к методу класса

Сообщение bartle96 » 25 окт 2014, 09:11

Неловкий вопрос, но все же
Как обратиться к методу класса?
Есть класс: https://github.com/baohaojun/system-con ... tFile.java
Нужно как то его запустить, чтобы он послал файл на сервер
Пробовал так:

Код: Выделить всё

    PostFile http_send = new PostFile();
            try {
                http_send.main();
            } catch (Exception e) {
                e.printStackTrace();
            }
Приложение вылетает(
И еще там входные данные String[] args
Я так понял что это массив строк или что то в этом духе
Но зачем? Переменная args все ровно нигде не используется

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Обратиться к методу класса

Сообщение Mikhail_dev » 25 окт 2014, 11:22

Когда люди начинают учить Java, они первым делом замечают что программа стартует с метода публичного, статического, который назван main и имеет входные параметры, в которые можно что-то запихнуть по желанию. Судя по вашему вопросу, вы Java даже и не пробовали учить. Попробуйте прочесть это - viewtopic.php?f=51&t=3408 и решить, надо ли вам вообще всё это.
Как обратиться к методу класса?
К динамическому методу класса обращаются через имяОбъекта.имяМетода , к статическому через ИмяКласса.имяМетода .
Параметры метода указаны в соответствии с требованиями запуска Java программ

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Обратиться к методу класса

Сообщение bartle96 » 25 окт 2014, 11:45

Спасибо, помогло.
Подскажите а что за параметры после имени?

Код: Выделить всё

   public void multiPartPost() throws ClientProtocolException, IOException {
        File image = new File("/storage/sdcard0/1252484748_large.jpg");
        FileBody fileBody = new FileBody(image);

        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("http://windows.twomini.com/upload.php");  
        post.setHeader("enctype", "multipart/form-data");

        MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create(); 
        multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);  
        multipartEntity.addPart("sampleImage", fileBody); 
        post.setEntity(multipartEntity.build());

        HttpResponse response = client.execute(post);
        String responseBody = EntityUtils.toString(response.getEntity());
        Log.v("multiPartPost HTTP Response", responseBody);
    }
Мне просто нужно запустить это в: protected String doInBackground(Void... params) {

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Обратиться к методу класса

Сообщение bartle96 » 25 окт 2014, 12:56

Прошу помощи

Код: Выделить всё

File file1 = new File("/mnt/sdcard0/1374175601623.png");
            File file2 = new File("resources/ava2.jpg");
            String urlString = "http://windows.twomini.com/upload.php";

            HttpEntity resEntity;
            try {
                HttpClient client = new DefaultHttpClient();
                HttpPost post = new HttpPost(urlString);
                FileBody bin1 = new FileBody(file1);
Не хочет выполнять FileBody. Программа вылетает на телефоне
Путь указал верный, картинка там имеется...

Код: Выделить всё

10-25 13:54:58.511  10818-10818/com.example.markedone.myapplication D/dalvikvm﹕ create new thread
10-25 13:54:58.511  10818-10818/com.example.markedone.myapplication D/dalvikvm﹕ new thread created
10-25 13:54:58.511  10818-10818/com.example.markedone.myapplication D/dalvikvm﹕ update thread list
10-25 13:54:58.511  10818-10844/com.example.markedone.myapplication D/dalvikvm﹕ threadid=14: interp stack at 0x5f0f4000
10-25 13:54:58.511  10818-10844/com.example.markedone.myapplication D/dalvikvm﹕ threadid=14: created from interp
10-25 13:54:58.511  10818-10818/com.example.markedone.myapplication D/dalvikvm﹕ start new thread
10-25 13:54:58.511  10818-10844/com.example.markedone.myapplication D/dalvikvm﹕ threadid=14: notify debugger
10-25 13:54:58.511  10818-10844/com.example.markedone.myapplication D/dalvikvm﹕ threadid=14 (AsyncTask #4): calling run()
10-25 13:54:58.517  10818-10838/com.example.markedone.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
            at java.util.concurrent.FutureTask.run(FutureTask.java:239)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:838)
     Caused by: java.lang.NoClassDefFoundError: org.apache.http.entity.ContentType
            at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:89)
            at com.example.markedone.myapplication.welcome$MyTask.doInBackground(welcome.java:336)
            at com.example.markedone.myapplication.welcome$MyTask.doInBackground(welcome.java:316)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:838)
10-25 13:54:58.612  10818-10818/com.example.markedone.myapplication D/libEGL﹕ loaded /vendor/lib/egl/libEGL_mtk.so
10-25 13:54:58.621  10818-10818/com.example.markedone.myapplication D/libEGL﹕ loaded /vendor/lib/egl/libGLESv1_CM_mtk.so
10-25 13:54:58.624  10818-10818/com.example.markedone.myapplication D/libEGL﹕ loaded /vendor/lib/egl/libGLESv2_mtk.so
10-25 13:54:58.670  10818-10818/com.example.markedone.myapplication D/OpenGLRenderer﹕ Enabling debug mode 0
10-25 13:54:59.290  10818-10823/com.example.markedone.myapplication D/dalvikvm﹕ GC_CONCURRENT freed 294K (3291), 8% free 7300K/7888K, paused 2ms+3ms, total 28ms

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Обратиться к методу класса

Сообщение bartle96 » 25 окт 2014, 14:09

Спасибо, разобрался)) Нужны было добавить файл apache-mime4j-0.6.jar and httpmime-4.0.1.jar

Ответить