2013-08-29 4 views
-1

Я пытаюсь автоматизировать действие загрузки документа csv на веб-сайт хранения файлов.Как загрузить файл через api

Я пытаюсь выполнить этот тест в качестве теста API бэкэнд.

У меня есть файл, хранящийся в моем каталоге, и я хочу отправить его как параметр вместе с конечной точкой json.

В настоящее время я использую функции python и выполняю основной тест в рамках робота.

Может ли кто-нибудь помочь мне?

def uploadFileContent(self,filename): 
    path = self.makeurl("XXX.json") 
    name = self.uploads_path+filename 
    sys.stderr.write('\n> Filename: ' + name + '\n')  

    files = {filename: open(name, 'rb'), "name": "bulk_users_csv"} 
    response = requests.post(path, files = files, cookies=self.cookies) 
    print response.text 
    self.status_code_should_be(201) 
    return response 
+1

На какой сайт вы хотите загрузить? Не могли бы вы привести пример того, что вы имеете в виду «отправить его как параметр вместе с конечной точкой json»? – User

+0

Разработайте свое требование .. попробуйте объяснить основные моменты .. и, кроме того, сделать api-вызов из javascript, вам нужно 'jsonp' not' json' –

+0

Я использую функцию выше, однако файл не распознается как правильный формат –

ответ

0

Посмотрите на документацию для библиотеки запросов, похоже, что вы отправляете неправильный формат для запроса. Это объясняет ошибку, которую вы не упоминаете в комментариях к вашему вопросу.

документация для размещения multipart-encoded file показывает пример, как это:

files = {'file': open('report.xls', 'rb')} 
files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})} 
files = {'file': ('report.csv', 'some,data,to,send\nanother,row,to,send\n')} 

Вы, используя ключ «имя файла» и клавиша «имя», ни один из которых, кажется, поддерживается.

Вы можетеsend arbitrary key/value pairs, но если это то, что вы пытаетесь сделать, вы не можете отправить дескриптор открытого файла в качестве данных.

Смежные вопросы