我正在尝试使用节点方法https.request进行PUT请求。我使用这种方法的原因是因为我需要传递--header private-token = PRIVATE和--data {stuff}之类的一些选项。
我已经有了一个GET请求,该请求很简单。我试图对PUT请求进行一些修改,但对工作的GET请求进行了一些修改,但显然我的语法在某处不正确。
像这样的事情就可以了。
const options = {
host: 'hostname.com'
path: '/path/to/repo'
port: 443
method: 'GET'
headers: {'Private-Token: PRIVATE'}
}
const req = https.request(options, (res) => {
console.log(res.statusCode); //returns 200
});
现在,我想做与上述类似的事情,但要有一个额外的选项数据,用于指定其他信息a
const options = {
host: 'hostname.com'
path: '/path/to/repo'
port: 443
method: 'PUT'
headers: {
'Private-Token: PRIVATE',
'Content-Type: 'application/json'
},
data : {
'branch': 'master',
'author_email': foo@foo.com',
'encoding': 'base64',
'content': foobar64,
'commit_message': 'testing through api'
}
}
const req = https.request(options, (res) => {
console.log(res.statusCode); //returns 400 bad request
});
想法是这样做curl --request PUT
--header 'PRIVATE-TOKEN: <your_access_token>'
--header "Content-Type: application/json"
--data '{"branch": "master", "author_email": "author@example.com", "author_name": "Firstname Lastname",
"content": "some content", "commit_message": "update file"}'
'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb'
但在节点
我知道语法是错误的,但是我不知道如何修复它,这是Nodejs的新功能。