首页 > 解决方案 > Ansible win_uri 模块不返回 POST 查询的内容

问题描述

我尝试在 POST 查询后从页面中获取一些数据。我正在使用 ansible 2.9.10。但是其中的 win_uri 模块不返回响应的内容。但是 Invoke-WebRequest 在同一主机上工作。

  win_uri:
    method: POST
    url: "{{ configuraton_url }}"
    body: "{'action': 'listconfig'}"
    validate_certs: no
    use_default_credential: yes
    return_content: yes
  register: configuration

结果

  configuration:
    cache_control: private
    changed: false
    character_set: null
    content: ''
    content_encoding: ''
    content_length: '0'
    content_type: ''
    cookies: []
    date: Mon, 29 Jun 2020 20:17:29 GMT
    elapsed: 0.1875025
    failed: false
    headers:
    - Persistent-Auth
    - Content-Length
    - Cache-Control
    - Date
    - Server
    - WWW-Authenticate
    - X-AspNet-Version
    - X-Powered-By
    is_from_cache: false
    is_mutually_authenticated: true
    last_modified: '2020-06-29T20:17:29.5951209+00:00'
    method: POST
    msg: OK
    persistent_auth: 'true'
    protocol_version:
      Build: -1
      Major: 1
      MajorRevision: -1
      Minor: 1
      MinorRevision: -1
      Revision: -1
    response_uri: https://xxxxxxx:xxx/xxxxxxxx
    server: xxxxxxx
    status_code: 200
    status_description: OK
    supports_headers: true
    url: https://xxxxxxx:xxx/xxxxxxxx
    www_authenticate: Negotiate oRswGaADCgEAoxIEEAEAAAAyRzN6JblgagAAAAA=
    x_asp_net_version: xxxxx
    x_powered_by: xxxxx

标签: windowsansibleuri

解决方案


content_length: '0'

它完全按照服务器的指示进行,没有返回内容

Stack Overlow 上的任何人都无法告诉您为什么您的混淆服务器没有返回任何内容,但 ansible 正在按照指示进行操作


作为一种猜测,我猜你正在发送一个格式错误的有效负载,两者都body:应该将引号颠倒(因为单引号版本是合法的 python,但不是合法的 JSON)并且你错过了content_type: application/json为了告诉win_uri:不要使用x-www-form-urlencoded. 我们无法确定发生了什么,因为您删除了模块输出的其余部分

  win_uri:
    method: POST
    url: "{{ configuraton_url }}"
    body: '{"action": "listconfig"}'
    content_type: application/json

推荐阅读