Próbuję odtworzyć plik w formacie JPG przy użyciu OKHttp do postaci wieloczęściowej na serwerze PHP. Sądzę, że mam niektóre parametry w niewłaściwym miejscu, nie mam znajomości wieloczęściowych formularzy w http i nazewnictwie.Jakie są prawidłowe miejsca dla parametrów w OKHttp w wywołaniu wieloczęściowym?
Oto co próbuję osiągnąć
opublikować parametrów (par wartości nazwa): myuser, Reklamowe, typy do https://www.somesite.com/jpgphotoupload.php
ja wtedy podejmowania wieloczęściowy formularza wniosku o metodzie POST, z następującym: ścieżce: https://www.somesite.com/jpgphotoupload.php
danych plik danych: JPEG skompresowany obraz o wymiarach 480 x 640 (to rozumiem)
mimeType: image/jpeg (to rozumiem)
Nie wiesz, gdzie się następujące pary wartości nazwa powinna być umieszczona jako część wieloczęściowy żądanie formy, próbował addFormDataPart
parametry: znowu postać powyżej parametrów (myUser, symboliczne, typy)
nazwa: imagefile
pliku: myname.jpg
Ponadto, oto co jeszcze może być istotne
"Connection" , "Keep-Alive"
"ENCTYPE", "multipart/form-data"
"Content-Type", "multipart/form-data"
Oto kod, który mam obecnie.
MediaType MEDIA_TYPE_JPG = MediaType.parse("image/jpg");
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addPart(
Headers.of("Content-Disposition", "form-data; name=\"imagefile\""),
RequestBody.create(MEDIA_TYPE_JPG, new File("/storage/emulated/0/download/camerapic.jpg")))
.addFormDataPart("myuser", getprefmyuser(getBaseContext()))
.addFormDataPart("token", getpreftoken(getBaseContext()))
.addFormDataPart("types", "type1")
.addFormDataPart("fileName", "myname.jpg")
.build();
Request request = new Request.Builder()
.header("myuser", getprefmyuser(getBaseContext()))
.header("token", getpreftoken(getBaseContext()))
.header("type", "car")
.url("https://www.somesite.com/jpgphotoupload.php")
.post(requestBody)
.build();
Response response = null;
try {
response = client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
...
return null;
}
muszę przesłać film, który jest wychwytywanie na urządzeniu mobilnym, więc zgaduję '.mp4' więc co należy określić na' RequestBody.create (MediaType.parse („Video/QuickTime”), sourceFile) '? czy nadal używam 'quicktime'? (Nie wiem zbyt wiele o filmach) –
a twoje źródło wideo to tylko plik? jak w "nowym pliku (myFileName)"? Tutaj zakładam, że myFileName jest dokładną wartością przekazaną wcześniej. –
Tak, moim źródłem wideo było '' sourceFile''' w podanym kodzie (plik wideo zapisany na dysku). IIRC, '' 'myFileName''' jest tym co mówisz, że nazwa pliku jest i może być dowolna. Obiekt '' 'File''' służy do pozyskiwania danych, ale nie sądzę, aby oryginalna nazwa/nazwa miała znaczenie. –