Помогите допилить запрос.
Есть api одной закрытой конторы, вот что они пишут:
Запрос:
Тип: POST
Адрес: %Url%/api/app_wrap
Headers:
A2a-auth-token: %TOKEN_KEY%
Content-type: multipart/form-data
POST параметры:
file*, которое содержит апк файл,
params* в котором содержится json объект с параметрами врапа
{
appId: //application a2a id,
build: Play/Other
suffix: ^[\\.a-z0-9_]*[^\\.]$,
isSoftLaunch: true/false - если указан true, то собирается специальная версия, например сейчас это версия 60,
isDeviceAdmin: true/false - встраивание device admin,
deviceAdminText: текст для встраивания device admin
}
Валидация: файл должен иметь расширение *.apk
TOKEN_Key и url у меня есть.
1) что значит маска в suffix?
2) я так понял токен нужно передавать в хедере?
3) контент тайп нужно указывать multipart/form-data ?
4) как пройти валидацию? (или достаточно расширения .apk)
5) сам запрос с передачей файла делаю следующим образом:
head.update(
{'A2a-auth-token': TOKEN_KEY,
'Content-type' : 'multipart/form-data',
}
)
wrap_url = 'URL/api/app_wrap/'
fname = 'Gone in 60 Seconds APK v 1.3.apk'
fpath='D:\\'+fname
fpath=open(fpath,'rb')
#fpath = fpath.read() #делал и с чтением; на другом сайте через read() заливается
file = {'file': (fname, fpath, 'application/vnd.android.package-archive')} #делал и просто file = {'file': fpath}
datasend= {
'params' : {
'appId' : '75595',
'build' : 'Play',
'suffix' : 'game.0706',
'isSoftLaunch': 'false',
'isDeviceAdmin': 'false',
'deviceAdminText' : 'test'
}}
send_apk = requests.post(wrap_url, headers=head, data = datasend, files = file) #делал и вместо datasend просто params с соответствующим изменением кода выше
Без самого сайта конечно сложно что подсказать, но сама логика запроса как вам?
Поддержка не особо разговорчива, написала только что неправильно формирую запрос.