使用React和axios进行卷曲

ST8*_*T80 3 javascript curl reactjs axios

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

卷曲字符串是:

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 '.'
Run Code Online (Sandbox Code Playgroud)

我试图这样做:

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)
        }
    })        
}
Run Code Online (Sandbox Code Playgroud)

但是没有运气-例如什么也没发生。

我以前使用cygwin-terminal进行curl-request,然后成功获得响应

{
 "token_type": "Bearer",
 "expires_in": 1799,
 "access_token": "eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5X2RldiJ9.eyJjbGllbnRfaWQiOiJjWTFqcm1rQXhPSVptbnNsOVhYN0puVURtVEVETGNGeCIsImV4cCI6MTQ4NzU2NzgwMSwic2NvcGUiOlsiZGF0YTpyZWFkIl0sImF1ZCI6Imh0dHBzOi8vYXV0b2Rlc2suY29tL2F1ZC9qd3RleHAzMCIsImp0aSI6InJZcEZZTURyemtMOWZ1ZFdKSVVlVkxucGNWT29BTDg0dFpKbXlmZ29ORW1MakF0YVVtWktRWU1lYUR2UGlnNGsifQ.uzNexXCeu4efGPKGGhHdKxoJDXHAzLb28B2nSjrq_ys"
}
Run Code Online (Sandbox Code Playgroud)

那么,React / axios是否有可能?

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

Jay*_*444 5

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

在您的HTTP请求中,我可以看到您正在使用axios.get(),但是您正在尝试进行后请求(您有一个要发送的数据对象)。因此,您应该使用axios.post()。最好查看axios页面以查看HTTP帖子的语法,包括如何在帖子中包括数据和标头对象。

回答第二个问题,可以。在.then()第一个axios帖子的部分中,您可以使用响应进行另一个axios帖子,例如

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