我已从 Azure Devops 用户界面生成了个人访问令牌,但无法使用它向 Devops API 发出请求。
我尝试了许多不同的标头字段,但我总是被重定向到登录页面,就好像我没有经过身份验证一样。
token = #Token generated on Devops project page
token_bytes = token.encode('utf-8')
token64 = base64.b64encode(token_bytes)
authorization_string = "basic " + str(token64)
repo_endpoint_url = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=5.1".format(organization=organization, project=project)
headers = {"Content-Type" : "application/json", "Authorization" : authorization_string}
response = requests.get(repo_endpoint_url, headers)
Run Code Online (Sandbox Code Playgroud)
响应始终为 203,登录页面为 HTML。如果标头中没有访问令牌,这就是我期望看到的内容。
我尝试过使用“Bearer”而不是“basic”,我尝试过添加 {username}:{token} 以及许多其他小调整。
我究竟做错了什么?
python request access-token azure-devops azure-devops-rest-api
我正在尝试从 切换request.js到got.js。我希望看到got.js实现与库的验证方式类似request.js。但是,我收到以下错误。
不再支持身份验证。替换为用户名和密码。
bearer文档页面上没有提及令牌。
那么我如何使用不记名令牌来验证我的请求got.js?或者我做错了什么?
const request = require('request');
const module.exports = config => {
const options = {
auth: {
bearer: config.secret,
},
};
const result = await new Promise(( resolve, reject, ) => {
request.get( url, options, ( error, response, body, ) => {
...
Run Code Online (Sandbox Code Playgroud)
新代码:got.js,抛出错误
const got = require('got');
module.exports = async config => {
const options = {
auth: {
bearer: config.secret,
},
}; …Run Code Online (Sandbox Code Playgroud) 我找不到有关如何在 NodeJS(使用 Express)中为给定请求设置自定义超时的文档?
以下不起作用......:
https.get("https://externalurl.com", { timeout: 1000 }, (res) => {
resp.on("timeout", () => {
console.log("Never fired");
});
});
Run Code Online (Sandbox Code Playgroud)
这样做也不起作用:
https.get("https://externalurl.com", (req, res) => {
req.setTimeout(1000);
});
Run Code Online (Sandbox Code Playgroud)
这样做也不行...
https.get("https://externalurl.com", (res) => {
})
.setTimeout(1000);
Run Code Online (Sandbox Code Playgroud)
它总是等待超过 1 秒才抛出错误
有人可以帮忙吗?是否有“官方”方法来为给定请求设置自定义超时?
我的完整 server.ts
// Express server
const app = express();
const PORT = process.env.PORT || 80;
const DIST_FOLDER = join(process.cwd(), "dist/browser");
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
const {
AppServerModuleNgFactory,
LAZY_MODULE_MAP,
ngExpressEngine, …Run Code Online (Sandbox Code Playgroud) 我使用 Postman 在 Laravel Api 中发送请求,并且返回一个空数组。而且我不知道为什么?
\n\n我的路线:
\n\nRoute::middleware('auth:api')->group( function () {\n\n Route::resource('reservations', 'ReservationController');\n});\nRun Code Online (Sandbox Code Playgroud)\n\n我的预订控制器:
\n\n <?php\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Requests\\ReservationCreateRequest;\nuse App\\Repositories\\ReservationRepository;\nuse App\\Http\\Resources\\Reservation as ReservationResource;\n\nclass ReservationController extends BaseController\n{\n\n protected $entrepriseRepository;\n\n public function __construct(ReservationRepository $reservationRepository)\n {\n $this->reservationRepository = $reservationRepository;\n }\n\n /**\n * Display the specified resource.\n *\n * @param int $id\n * @return \\Illuminate\\Http\\Response\n */\n public function show($id)\n {\n $reservation = $this->reservationRepository->getById($id);\n\n return $this->sendResponse(new ReservationResource($reservation), 'Reservation');\n }\n\n /**\n * Update the specified resource in storage.\n *\n * @param Illuminate\\Http\\Request $request\n …Run Code Online (Sandbox Code Playgroud) 我发现 Youtube Data API 的响应与使用 xml feed 时得到的响应不同。
也就是说,API 响应缺少视频或更新较晚!我报告了“issuetracker”上的一个错误。
我只需获取公开可用的 xml 数据就可以解决我的问题:
https://www.youtube.com/feeds/videos.xml?channel_id=UC8yH-uI81UUtEMDsowQyx1g
但是,我担心他们会因为太多请求而禁止我,因为我一小时内为我的应用程序发送了多个请求。
有了API的配额,就没有问题,因为我不会超过限制。
我搜索过但找不到任何东西。像这样的东西https://www.youtube.com/feeds/videos.xml?channel_id=UC8yH-uI81UUtEMDsowQyx1g&key=[SECRET KEY]将是一个很好的解决方案。
有什么建议么?
我正在尝试设置一个可以侦听和处理 POST 请求的小型 Python 3.8 脚本。我想监听来自 Trello 的 POST,然后记录数据。我读过的每个视频或指南都展示了如何处理来自 HTML 表单的 POST 请求。
特雷洛示例:
{
"action": {
"id":"51f9424bcd6e040f3c002412",
"idMemberCreator":"4fc78a59a885233f4b349bd9",
"data": {
"board": {
"name":"Trello Development",
"id":"4d5ea62fd76aa1136000000c"
},
"card": {
"idShort":1458,
"name":"Webhooks",
"id":"51a79e72dbb7e23c7c003778"
},
"voted":true
},
"type":"voteOnCard",
"date":"2013-07-31T16:58:51.949Z",
"memberCreator": {
"id":"4fc78a59a885233f4b349bd9",
"avatarHash":"2da34d23b5f1ac1a20e2a01157bfa9fe",
"fullName":"Doug Patti",
"initials":"DP",
"username":"doug"
}
},
"model": {
"id":"4d5ea62fd76aa1136000000c",
"name":"Trello Development",
"desc":"Trello board used by the Trello team to track work on Trello. How meta!\n\nThe development of the Trello API is being tracked at https://trello.com/api\n\nThe development of Trello Mobile …Run Code Online (Sandbox Code Playgroud) 如标题,是否可以获取请求参数?
我尝试从请求正文中获取它,但失败了,task.Result为零。看来请求正文是空的。
任何人都可以帮助我,我将不胜感激。
代码如下:
public class LogFilter : Attribute, IActionFilter
{
private ILogger<LogFilter> _logger;
private ITestAService _service;
public LogFilter(ILogger<LogFilter> logger, ITestAService service)
{
_logger = logger;
_service = service;
}
public void OnActionExecuted(ActionExecutedContext context)
{
var content = new StringBuilder();
using (Stream sm = context.HttpContext.Request.Body)
{
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
var task = sm.ReadAsync(buffer, 0, 1024);
if (task.Result > 0)
{
content.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在 Flask 中创建了一个 python 应用程序。这是代码的骨架
app = Flask(__name__)
@app.route('/', methods=['GET'])
def authentication():
'''athentication process'''
return 'authenticated'
Run Code Online (Sandbox Code Playgroud)
因此,当用户调用该应用程序时,它将进行身份验证。但是,如果两个用户同时或在处理一个身份验证时调用该请求,我想保留新请求,直到旧请求完成,然后我想启动新请求。我尝试过semaphore但没有工作。这是我尝试过的
@app.route('/', methods=['GET'])
def authentication():
sem.acquire()
'''athentication process'''
sem.release()
return 'authenticated'
Run Code Online (Sandbox Code Playgroud)
我已将其部署在Heroku. 知道我该如何实现这一目标吗?
PS:如果这不能完成,至少我想响应另一个请求正在处理的新请求,并在一段时间后重试
我有一个带有一堆提交输入的表单,每个输入都有一个唯一的名称,现在我想在控制器中检查正在单击哪个输入。
表格
<input type="submit" name="button_1" value="1">
<input type="submit" name="button_2" value="2">
<input type="submit" name="button_3" value="3">
<!-- and more submit inputs -->
Run Code Online (Sandbox Code Playgroud)
在控制器中,我现在使用 if else 来检查正在单击哪个输入,例如我可以使用这个
if ($request->input('button_1'))
{$message = '1'; // and more code
}
elseif ($request->input('button_2'))
{$message = '2'; // and more code
}
elseif ($request->input('button_3'))
{$message = '3'; // and more code
}
// ...
Run Code Online (Sandbox Code Playgroud)
或者我可以用这个
if ($request->has('button_1')) {$message = '1';}
elseif ($request->has('button_2')) {$message = '2';}
elseif ($request->has('button_3')) {$message = '3';}
// ...
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来检查哪个提交输入被单击,例如 switch 方法,因为这将使编写逻辑更加简单和清晰,但我无法弄清楚。
尝试运行代码时发生以下错误:
Traceback (most recent call last):
response = session.post(base_url, params={'query': filename_query})
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 578, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 805, in urlopen
if retries.is_retry(method, response.status, has_retry_after):
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 343, in is_retry
if not self._is_method_retryable(method):
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 331, in _is_method_retryable
if self.method_whitelist and method.upper() not …Run Code Online (Sandbox Code Playgroud) request ×10
python ×4
laravel ×2
node.js ×2
python-3.x ×2
.net-core ×1
access-token ×1
ajax ×1
azure-devops ×1
express ×1
flask ×1
get ×1
heroku ×1
http-get ×1
http-post ×1
if-statement ×1
javascript ×1
json ×1
laravel-6.2 ×1
parameters ×1
python-3.8 ×1
semaphore ×1
timeout ×1
urllib3 ×1
xml ×1
youtube ×1
youtube-api ×1