标签: request

使用个人访问令牌进行 azure devops API 存储库操作

我已从 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

1
推荐指数
1
解决办法
2756
查看次数

如何使用 got.js 使用不记名令牌进行身份验证

我正在尝试从 切换request.jsgot.js。我希望看到got.js实现与库的验证方式类似request.js。但是,我收到以下错误。

不再支持身份验证。替换为用户名和密码。

bearer文档页面上没有提及令牌。

那么我如何使用不记名令牌来验证我的请求got.js?或者我做错了什么?

当前代码:request.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)

javascript request node.js

1
推荐指数
1
解决办法
2451
查看次数

如何在 http get nodeJS 上设置自定义超时

我找不到有关如何在 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)

timeout get request node.js express

1
推荐指数
1
解决办法
4085
查看次数

Laravel 6.2:$request->all() 返回一个空数组

我使用 Postman 在 Laravel Api 中发送请求,并且返回一个空数组。而且我不知道为什么?

\n\n

我的路线:

\n\n
Route::middleware('auth:api')->group( function () {\n\n    Route::resource('reservations', 'ReservationController');\n});\n
Run 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)

ajax json request laravel laravel-6.2

1
推荐指数
1
解决办法
3811
查看次数

是否可以使用 API 密钥检索 youtube 的 xml feed?

我发现 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]将是一个很好的解决方案。

有什么建议么?

xml youtube http-get request youtube-api

1
推荐指数
1
解决办法
930
查看次数

如何使用 Python 处理 POST 请求?

我正在尝试设置一个可以侦听和处理 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)

python http-post request python-3.x python-3.8

1
推荐指数
1
解决办法
1万
查看次数

如何在action过滤器的OnActionExecuted中获取请求参数

如标题,是否可以获取请求参数?

我尝试从请求正文中获取它,但失败了,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)

parameters request action-filter onactionexecuted .net-core

1
推荐指数
1
解决办法
3439
查看次数

当旧请求在烧瓶中处理时如何保存新请求?

我在 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:如果这不能完成,至少我想响应另一个请求正在处理的新请求,并在一段时间后重试

python semaphore heroku request flask

1
推荐指数
1
解决办法
378
查看次数

Laravel 请求带有 switch 语句

我有一个带有一堆提交输入的表单,每个输入都有一个唯一的名称,现在我想在控制器中检查正在单击哪个输入。

表格

<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 方法,因为这将使编写逻辑更加简单和清晰,但我无法弄清楚。

if-statement request switch-statement laravel

1
推荐指数
1
解决办法
1488
查看次数

AttributeError:“重试”对象没有属性“method_whitelist”

尝试运行代码时发生以下错误:

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)

python request urllib3 python-3.x

1
推荐指数
1
解决办法
1万
查看次数