Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.04.2023
Сообщений: 2

Не отправляется файл методом post через библиотеку OkHttp

19.04.2023, 16:02. Показов 624. Ответов 1

Студворк — интернет-сервис помощи студентам
в чем может быть проблема:
не отправляются файл выскакивает ошибка:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
java.net.SocketTimeoutException:timeout
 
 
private class SendImage_ms extends AsyncTask {
 
@Override
protected String doInBackground(String... params) {
String id_ms = ID_Item.toString();
String key_api = api_key;
Bitmap image = photo_img_ms;
OutputStream fl_image = null;
String filename = "image.png";
 
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
 
File file = new File(path, "/image.png");
 
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(file);
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, baos);
try {
baos.writeTo(fOut);
fOut.close();
 
} catch (IOException e) {
String errorMessage = "Ошибка!";
Toast toast = Toast.makeText(MainActivity.this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
throw new RuntimeException(e);
}
 
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("id", id_ms)
.addFormDataPart("api_key", api_key)
.addFormDataPart("file", "image.png",
RequestBody.create(MEDIA_TYPE_PNG, new File(path+"/image.png")))
.build();
 
OkHttpClient client1 = client.newBuilder()
 
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
 
.build();
 
Request request = new Request.Builder()
// .header("User-Agent", "Your-App-Name")
.url(params[0])
.post(requestBody)
.build();
 
try (Response response = client1.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
 
System.out.println(response.body().string());
} catch (IOException e) {
return e.toString();
//throw new RuntimeException(e);
}
 
return "null";
}
@Override
protected void onPostExecute(String data) {
 
name_ms.setText(data.toString());
//item.setActionView(null);
}
пробовал напрямую с программы postman отправлять, файлы загружаются
пробовал тайминги поставить на 5 мин, не дает не какого результата

если убрать
Java
1
2
.addFormDataPart("file", "image.png",
RequestBody.create(MEDIA_TYPE_PNG, new File(path+"/image.png")))
запрос уходит
не подскажите что еще можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2023, 16:02
Ответы с готовыми решениями:

Не отправляется методом POST
Подскажите пожалуйста, в чем может быть дело. Пытаюсь отправить данные из формы методом пост. Но массив print_r($_POST) оказывается пустым....

Не отправляется сообщение методом POST
Добрый вечер, Создал я форму на html странице <form action= "post.php" method= "POST"> <input type="text" name= "name"...

Выполнение POST запроса с использованием okhttp
Добрый день! Пытаюсь Вытащить данные из базы mysql при помощи okhttp Но запрос на сервер остуществляется после выполнения основной...

1
0 / 0 / 0
Регистрация: 19.04.2023
Сообщений: 2
21.04.2023, 19:33  [ТС]
изменил отправку
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public Boolean SendImage_ms(String serverURL) {
try {
 
Bitmap image = photo_img_ms;
String id_ms = ID_Item.toString();
String filename = "image.png";
 
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 10, baos);
 
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", filename,
RequestBody.create(MEDIA_TYPE_PNG,
baos.toByteArray()))
.addFormDataPart("id", id_ms)
.addFormDataPart("api_key", api_key)
.build();
 
Request request = new Request.Builder()
.url(serverURL)
.addHeader("Content-Type", "multipart/form-data; boundary=something")
.post(body)
.build();
 
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new LoggingInterceptor())
.writeTimeout(600, TimeUnit.SECONDS)
.readTimeout(600, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();
 
client.newCall(request).enqueue(new Callback() {
 
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
System.out.println(e.toString());
}
 
@Override
public void onResponse(final Call call, final Response response) throws IOException {
if (!response.isSuccessful()) {
System.out.println("error");
}
System.out.println(response.body().string());
}
});
 
return true;
} catch (Exception ex) {
System.out.println(ex.toString());
// Handle the error
}
return false;
}
 
class LoggingInterceptor implements Interceptor {
@Override public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
 
long t1 = System.nanoTime();
Log.d("OkHttp", String.format("Sending request %s on %s%n%s",
request.url(), chain.connection(), request.headers(), request.body(),request.toString()));
 
Response response = chain.proceed(request);
 
long t2 = System.nanoTime();
Log.d("OkHttp", String.format("Received response for %s in %.1fms%n%s",
response.request().url(), (t2 - t1) / 1e6d, response.headers()));
 
return response;
}
}
в эмуляторе что меньше 2 кб отправляется
с телефона не уходит (размер 30 -50 кб) пишет I/System.out: java.io.IOException: unexpected end of stream on http://
что может быть не подскажите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2023, 19:33
Помогаю со студенческими работами здесь

Okhttp не могу отправить post запрос
Всем привет! Хочу отправить POST запрос на сервер из приложения. Наткнулся на библиотеку okhttp. Пытаюсь отправить запрос таким...

Отправка post запроса на сервер (okhttp)
Доброго времени суток. Столкнулся с проблемой отправки post запроса на сервер. Рекомендуют использовать okhttp или retrofit. Retrofit...

Как методом post передать данные не через submit, а через ссылку?
У меня сейчас выводится кнопка с ником, при нажатии на которую выводится подробная информация о пользователе с помощью такого кода. echo...

Почему не отправляется файл через telegram bot api?
мой бот должен уметь отправлять файлы в чат, я собрал код для передачи файла: $document = new CURLFile('test.txt'); ...

Передача текста методом Post через HyperlinkButton
Добрый день! Можете подсказать как формировать/отправлять post-запросы? Кто нибудь может помочь примерно как передать string на index.php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru