使用rpclib進行Python網路編程時的注釋問題

來源:互聯網
上載者:User
rpclib 是一個非常好用的 python webservice 庫,可以動態產生 wsdl, 不過這個項目已經基本停止,並被一個新的項目取代 spyne,由於舊的項目 工作已經比較穩定,所以我沒有貿然升級到 spyne。

我在 rpclib 編寫 service 方法時,遇到一個奇怪的錯誤: 訪問 wsdl (http://localhost:9898/?wsdl) 頁面,返回 502 Bad Gateway。

在日誌中看到如下錯誤資訊:

複製代碼 代碼如下:

ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

我檢查了代碼,對比了之前可以工作的版本,發現並沒有什麼不對的地方。

@srpc(RequestModel, _returns=Unicode)def shenzhen(request):  """  根據傳入的token、車牌號及車駕號,以及驗證碼  查詢該車輛的違章記錄  """  logging.info(request)  query = ShenZhenQuery(request)  return query.query_car_records()

但就是沒有正確產生 wsdl,後來我刪除了方法內所有的內容(包括注釋),只留下一條返回 unicode 字串的語句,然後就工作正常了,但是當我加入了方法的文檔注釋後,又出來了之前的錯誤,於是我 懷疑到了注釋上:中文的注釋,卻沒有使用 unicode 字串,於是使用 u"" 中文注釋 """ 後,一切正常!

查看產生的 wsdl,發現原來原來 rpclib 使用注釋產生了

複製代碼 代碼如下:

根據傳入的token、車牌號及車駕號,以及驗證碼 查詢該車輛的違章記錄

複製代碼 代碼如下:

難怪一遇到中文注釋就會出錯!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.