Как я могу улучшить элегантность моего кода, который использует топор ios? - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь перейти с запроса на ax ios, так как запрос устарел.
Предположим, что URL 'https://www.example.com 'получает почтовый запрос с formdata, который содержит информацию для входа в систему, а также предполагает, что мне нужно поддерживать текущий сеанс для нескольких запросов (для этого мне нужен cookieJar). При использовании ax ios мне нужна поддержка cookieJar из внешней библиотеки, поэтому я использую ax ios -cookiejar .
Также для отправки данных форм с помощью ax ios Мне нужно использовать внешнюю библиотеку form-data , и я также должен установить заголовки вручную, поскольку ax ios не делает этого для меня.
У меня есть следующий код, который использует ax ios, который делает именно это:

axios = require('axios')
FormData = require('form-data')
axiosCookieJarSupport = require('axios-cookiejar-support').default
tough = require('tough-cookie')
axiosCookieJarSupport(axios)
cookieJar = new tough.CookieJar()
form = new FormData()
form.append('email', 'example@gmail.com')
form.append('password', '1234')
axios({
    method: 'post',
    url: 'https://www.example.com',
    data: form,
    headers: {'Content-Type': `multipart/form-data; boundary=${form._boundary}` },
    jar: cookieJar,
    withCredentials: true
}).then(function (response) {
    console.log(response['data'])
})

Используя запрос, это становится намного проще:

request = require('request')
requestCookieJar = request.jar()
request.post({
    url: 'https://www.example.com',
    method: 'POST',
    jar: requestCookieJar,
    formData: {
        'email': 'example@gmail.com',
        'password': '1234'
    }
}, function(error, response, body) {
    console.log(body)
})

Как вы можете видеть, API запроса гораздо элегантнее.
Есть ли способ использовать топор ios более элегантно или есть другой элегантный API, который не считается устаревшим, который я мог бы использовать для поддержки своих потребностей, изложенных в начале этого вопроса?

...