Dùng python call webservice XML SOAP

Sau một hồi vật vã tìm kiếm thì mới tìm thấy cách sử dụng python để gọi một 1 webservice XML sử dụng SOAP.
Webservice XML được tạo ra bởi .NET và sử dụng .NET để gọi thì đơn giản rồi. Bây giờ mình muốn sử dụng Python thì cũng khá phức tạp, tìm mãi mới thấy cách dùng:

Code:

import requests
url="http://xxx.xxx.xxx:8668/xxx/WHOLESALESTATISTIC.asmx?WSDL"
#headers = {'content-type': 'application/soap+xml'}
headers = {'content-type': 'text/xml'}
body = """<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body><WholesaleStatistic xmlns="http://tempuri.org/">  <Account>xxx</Account> <Password>pass@abc</Password> <sDate>2019-02-17</sDate></WholesaleStatistic>  </soap:Body></soap:Envelope>"""

response = requests.post(url,data=body,headers=headers)
print(response.content)

Kết quả sẽ trả về định dạng XML, từ đây có thể lấy dữ liệu ra bằng cách pase XML hoặc google…

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><WholesaleStatisticResponse xmlns="http://tempuri.org/"><WholesaleStatisticResult><newsubs>0</newsubs><deactivated>0</deactivated><portfolio>20</portfolio></WholesaleStatisticResult></WholesaleStatisticResponse></soap:Body></soap:Envelope>'

Một số link tham khảo thêm:

https://medium.com/@adriennedomingus/using-zeep-to-make-soap-requests-in-python-c575ea0ee954

https://www.geeksforgeeks.org/get-post-requests-using-python/

https://viblo.asia/p/xay-dung-mot-restful-api-don-gian-voi-python-va-flask-bJzKmMvDK9N

http://hoctuduylaptrinh.com/category/lap-trinh/lap-trinh-python/

Từ điển của tôi

Ý tưởng tự xây dựng bộ từ điển của riêng mình, cá nhân hóa từ điển. Có thể thơm bớt các từ mới.

Đối với 1 văn bản hoặc trang web cần dịch. Hệ thống sẽ trích xuất toàn bộ từ vựng trong danh sách này. So khớp với danh sách từ điển của bản thân và tiến hành đưa nghĩa các từ mà mình đã gặp để mình có thể hiểu nghĩa.

Có 3 trường hợp:
1: Từ vựng nằm trong từ điển, từ điển sẽ hiển thị lên, nhiều lần khi mình đã nhớ rồi thì có thể xóa đi khỏi từ điển
2: Từ vựng không nằm trong từ điển và là từ mới mình chưa biết-> Tiến hành dịch và thêm vào từ điển
3: Từ vựng không nằm trong từ điển và mình đã biết, không cần làm gì

Mình sẽ làm tính năng tạm thời offline bằng python. Từ điển được lưu và load bằng file excel.

Một số tài liệu cài đặt Oracle trên Oracle Linux

https://asktom.oracle.com/pls/asktom/asktom.search?tag=ora-01034-oracle-not-available

https://oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux

ORA-01078: failure in processing system parameters

https://stackoverflow.com/questions/18403125/how-to-create-a-new-schema-new-user-in-oracle-database-11g

Cài đặt từ thư viện Oracle

https://sites.google.com/site/loilmsite/oracle/cai-dat-oracle-database-11g-release-2-tren-oracle-linux-6

https://ora-data.blogspot.com/2016/11/sqlplus-not-connecting-in-oracle.html

https://community.oracle.com/thread/2178662

Cài đặt máy ảo để lấy môi trường để “vọc” thứ mới

Máy ảo có nhiều tác dụng mà mình đang sử dụng như sau:

  • Check các file cần giải nén nghi ngờ có virut ở trong như các file crack
  • Tạo môi trường linux để thử nghiệm các lệnh linux, lập trình trên linux
  • Tạo môi trường server để tập build app, public trên các môi trường khác như Windowserver, Linux server..
  • Tự học các thứ mới như các hệ thống HA, Database Oracle, Apex…

Để cài máy ảo trên window và linux hiện mình biết có 2 phần mềm là Virtualbox và Vmware workstation.
Trong đó máy chính của mình là Window nên mình hay dùng với Vmware workstation, trước đây cũng dùng Virtualbox nhưng về sau lại thôi.
Để cài Vmware workstation thì đơn giản, google cái ra rất nhiều. Nhưng nếu muốn cài máy ảo 64 bit thì phải vào BIOS bật tính năng VT(x) lên (google nhé: BIOS cài máy ảo 64 bit).

Để đỡ phải cài máy ảo nhiều lần, khi ta cài xong 1 máy thì có thể nhân bản để lưu trữ lại. Vmware workstation cho phép ta nhân bản với 2 tính năng:

  • Clone: chép nguyên 1 bản máy ảo lại, mình thích dùng cách này, cách này cho ta 1 bản mới nguyên.
  • Snapshot: Sao lưu lại trạng thái của máy ở 1 thời điểm nào đó, cách này cho phép ta restore máy về 1 trạng thái nào trước đó.

Chiến lược của mình là cài xong 1 máy ảo, tiến hành clone ra 1 bản để sử dụng. Khi nào muốn dùng bản mới ở trạng thái ban đầu thì lại clone từ bản gốc để sử dụng.
Đối với mỗi bản đang dùng, trước khi làm 1 thao tác gì hoặc cài đặt, cấu hình cái gì thì tiến hành snapshot lại để có thể dễ dàng trở lại trạng thái trước đó.