首页 文章

使用React和axios进行卷曲

提问于
浏览
2

是否可以使用 axios 发出 curl 请求?

卷曲字符串是:

curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' --data 'client_id=1234&client_secret=1234&grant_type=client_credentials&scope=bucket:create bucket:read data:write data:read viewables:read' --header 'Content-Type: application/x-www-form-urlencoded' -k | jq '.'

我试着这样做:

getToken() {

    axios.get({
        url: 'https://developer.api.autodesk.com/authentication/v1/authenticate',
        data: {
            client_id: '1234',
            client_secret: '1234',
            grant_type : 'client_credentials',
            scope: 'data:read data:viewables'
        },
        beforeSend: function(xhr) {
             xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
        }, success: function(data){
            console.log(data)
        }
    })        
}

但没有运气 - 例如什么都没发生 .

我以前用 cygwin -terminal来制作 curl -request,我成功得到了回应

{
 "token_type": "Bearer",
 "expires_in": 1799,
 "access_token": "eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5X2RldiJ9.eyJjbGllbnRfaWQiOiJjWTFqcm1rQXhPSVptbnNsOVhYN0puVURtVEVETGNGeCIsImV4cCI6MTQ4NzU2NzgwMSwic2NvcGUiOlsiZGF0YTpyZWFkIl0sImF1ZCI6Imh0dHBzOi8vYXV0b2Rlc2suY29tL2F1ZC9qd3RleHAzMCIsImp0aSI6InJZcEZZTURyemtMOWZ1ZFdKSVVlVkxucGNWT29BTDg0dFpKbXlmZ29ORW1MakF0YVVtWktRWU1lYUR2UGlnNGsifQ.uzNexXCeu4efGPKGGhHdKxoJDXHAzLb28B2nSjrq_ys"
}

那么,这可能与React / axios一起使用吗?

除了问题,我可以将收到的令牌传递给另一个 curl 请求吗?

1 回答

  • 3

    嗯,这不是真正的“卷曲请求” . 这是一个HTTP请求 . Curl只是用于通过命令行执行HTTP(和其他)操作的工具 .

    在您的HTTP请求中,我可以看到您正在使用 axios.get() ,但是're trying to do a post request (you'已经有了您要发送的数据对象 . 所以你应该使用 axios.post() . 最好查看axios page以查看HTTP帖子的语法,包括如何在帖子中包含数据和 Headers 对象 .

    在回答你的第二个问题时,是的,你可以 . 在您的第一个axios帖子的 .then() 部分,您可以使用响应执行另一个axios post,例如

    axios.post(
        ...
    ).then(response => {
        // do another post with response.token or whatever as the data
    })
    ...
    

相关问题