rpclib 是一個非常好用的 python webservice 庫,可以動態的生成 wsdl, 不過這個項目已經基本停止,并被一個新的項目取代 spyne,由于舊的項目 工作已經比較穩定,所以我沒有貿然升級到 spyne。
我在 rpclib 編寫 service 方法時,遇到一個奇怪的錯誤: 訪問 wsdl (http://localhost:9898/?wsdl) 頁面,返回 502 Bad Gateway。
在日志中看到如下錯誤信息:
我檢查了代碼,對比了之前可以工作的版本,發現并沒有什么不對的地方。
@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、車牌號及車駕號,以及驗證碼 查詢該車輛的違章記錄
難怪一遇到中文注釋就會出錯!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
